Skip to content
This repository was archived by the owner on Jan 31, 2024. It is now read-only.

Commit 57aa8d7

Browse files
authored
v1.6.2 adds Async_WebSocketsServer example
### Releases v1.6.2 1. Add examples [Async_WebSocketsServer](https://github.com/khoih-prog/AsyncWebServer_Teensy41/tree/main/examples/Async_WebSocketsServer) to demo how to use `Async_WebSockets`
1 parent 43e9428 commit 57aa8d7

24 files changed

+135
-77
lines changed

CONTRIBUTING.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,34 @@ However, before reporting a bug please check through the following:
1010

1111
If you don't find anything, please [open a new issue](https://github.com/khoih-prog/AsyncWebServer_Teensy41/issues/new).
1212

13+
---
14+
1315
### How to submit a bug report
1416

1517
Please ensure to specify the following:
1618

1719
* Arduino IDE version (e.g. 1.8.19) or Platform.io version
1820
* `Teensyduino` Core Version (e.g. `Teensyduino core v1.57`)
19-
* `QNEthernet` library version (e.g. `QNEthernet v0.16.0`)
21+
* `QNEthernet` library version (e.g. `QNEthernet v0.17.0`)
2022
* Board type and relevant info
2123
* Contextual information (e.g. what you were trying to achieve)
2224
* Simplest possible steps to reproduce
2325
* Anything that might be relevant in your opinion, such as:
2426
* Operating system (Windows, Ubuntu, etc.) and the output of `uname -a`
2527
* Network configuration
2628

29+
Please be educated, civilized and constructive as you've always been. Disrespective posts against [GitHub Code of Conduct](https://docs.github.com/en/site-policy/github-terms/github-event-code-of-conduct) will be ignored and deleted.
30+
31+
---
2732

2833
### Example
2934

3035
```
3136
Arduino IDE version: 1.8.19
3237
Teensyduino core v1.57
33-
Teensy 4.1 using QNEthernet v0.16.0
38+
Teensy 4.1 using QNEthernet v0.17.0
3439
OS: Ubuntu 20.04 LTS
35-
Linux xy-Inspiron-3593 5.15.0-53-generic #59~20.04.1-Ubuntu SMP Thu Oct 20 15:10:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
40+
Linux xy-Inspiron-3593 5.15.0-58-generic #64~20.04.1-Ubuntu SMP Fri Jan 6 16:42:31 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
3641
3742
Context:
3843
I encountered a crash while using this library

README.md

Lines changed: 69 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@
107107
* [6. Async_AdvancedWebServer_MemoryIssues_Send_CString on Teensy4.1 QNEthernet](#6-Async_AdvancedWebServer_MemoryIssues_Send_CString-on-Teensy41-QNEthernet)
108108
* [7. Async_AdvancedWebServer_SendChunked on Teensy4.1 QNEthernet](#7-Async_AdvancedWebServer_SendChunked-on-Teensy41-QNEthernet)
109109
* [8. AsyncWebServer_SendChunked on Teensy4.1 QNEthernet](#8-AsyncWebServer_SendChunked-on-Teensy41-QNEthernet)
110+
* [9. Async_WebSocketsServer on Teensy4.1 QNEthernet](#9-Async_WebSocketsServer-on-Teensy41-QNEthernet)
110111
* [Debug](#debug)
111112
* [Troubleshooting](#troubleshooting)
112113
* [Issues](#issues)
@@ -233,8 +234,8 @@ to apply the better and faster **asynchronous** feature of the **powerful** [ESP
233234
## Prerequisites
234235

235236
1. [`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [![GitHub release](https://img.shields.io/github/release/arduino/Arduino.svg)](https://github.com/arduino/Arduino/releases/latest)
236-
2. [`Teensy core v1.57+`](https://www.pjrc.com/teensy/td_download.html) for Teensy 4.1. [![GitHub release](https://img.shields.io/github/release/PaulStoffregen/cores.svg)](https://github.com/PaulStoffregen/cores/releases/latest)
237-
3. [`QNEthernet Library version v0.16.0+`](https://github.com/ssilverman/QNEthernet) for Teensy 4.1 built-in Ethernet
237+
2. [`Teensy core v1.57+`](https://github.com/PaulStoffregen/cores) for Teensy 4.1. [![GitHub release](https://img.shields.io/github/release/PaulStoffregen/cores.svg)](https://github.com/PaulStoffregen/cores/releases/latest)
238+
3. [`QNEthernet Library version v0.17.0+`](https://github.com/ssilverman/QNEthernet) for Teensy 4.1 built-in Ethernet
238239
4. [`Teensy41_AsyncTCP library v1.1.0+`](https://github.com/khoih-prog/Teensy41_AsyncTCP) to use **Teensy 4.1 using QNEthernet Library**. [![GitHub release](https://img.shields.io/github/release/khoih-prog/Teensy41_AsyncTCP.svg)](https://github.com/khoih-prog/Teensy41_AsyncTCP/releases/latest)
239240

240241
---
@@ -1062,29 +1063,29 @@ When sending a web socket message using the above methods a buffer is created.
10621063
```cpp
10631064
void sendDataWs(AsyncWebSocketClient * client)
10641065
{
1065-
DynamicJsonBuffer jsonBuffer;
1066-
JsonObject& root = jsonBuffer.createObject();
1067-
root["a"] = "abc";
1068-
root["b"] = "abcd";
1069-
root["c"] = "abcde";
1070-
root["d"] = "abcdef";
1071-
root["e"] = "abcdefg";
1072-
size_t len = root.measureLength();
1073-
AsyncWebSocketMessageBuffer * buffer = ws.makeBuffer(len); // creates a buffer (len + 1) for you.
1066+
DynamicJsonBuffer jsonBuffer;
1067+
JsonObject& root = jsonBuffer.createObject();
1068+
root["a"] = "abc";
1069+
root["b"] = "abcd";
1070+
root["c"] = "abcde";
1071+
root["d"] = "abcdef";
1072+
root["e"] = "abcdefg";
1073+
size_t len = root.measureLength();
1074+
AsyncWebSocketMessageBuffer * buffer = ws.makeBuffer(len); // creates a buffer (len + 1) for you.
1075+
1076+
if (buffer)
1077+
{
1078+
root.printTo((char *)buffer->get(), len + 1);
10741079
1075-
if (buffer)
1080+
if (client)
10761081
{
1077-
root.printTo((char *)buffer->get(), len + 1);
1078-
1079-
if (client)
1080-
{
1081-
client->text(buffer);
1082-
}
1083-
else
1084-
{
1085-
ws.textAll(buffer);
1086-
}
1082+
client->text(buffer);
1083+
}
1084+
else
1085+
{
1086+
ws.textAll(buffer);
10871087
}
1088+
}
10881089
}
10891090
```
10901091

@@ -1259,20 +1260,19 @@ void setup()
12591260

12601261
void loop()
12611262
{
1262-
12631263
}
12641264
```
12651265
12661266
### Methods for controlling websocket connections
12671267
12681268
```cpp
1269-
// Disable client connections if it was activated
1270-
if ( ws.enabled() )
1271-
ws.enable(false);
1269+
// Disable client connections if it was activated
1270+
if ( ws.enabled() )
1271+
ws.enable(false);
12721272
1273-
// enable client connections if it was disabled
1274-
if ( !ws.enabled() )
1275-
ws.enable(true);
1273+
// enable client connections if it was disabled
1274+
if ( !ws.enabled() )
1275+
ws.enable(true);
12761276
```
12771277

12781278

@@ -1365,11 +1365,12 @@ build_flags =
13651365
11. [**MQTT_ThingStream**](examples/MQTT_ThingStream)
13661366
12. [WebClient](examples/WebClient)
13671367
13. [WebClientRepeating](examples/WebClientRepeating)
1368-
14. [Async_AdvancedWebServer_favicon](examples/Async_AdvancedWebServer_favicon) **New**
1369-
15. [Async_AdvancedWebServer_MemoryIssues_SendArduinoString](examples/Async_AdvancedWebServer_MemoryIssues_SendArduinoString) **New**
1370-
16. [Async_AdvancedWebServer_MemoryIssues_Send_CString](examples/Async_AdvancedWebServer_MemoryIssues_Send_CString) **New**
1371-
17. [Async_AdvancedWebServer_SendChunked](examples/Async_AdvancedWebServer_SendChunked) **New**
1372-
18. [AsyncWebServer_SendChunked](examples/AsyncWebServer_SendChunked) **New**
1368+
14. [Async_AdvancedWebServer_favicon](examples/Async_AdvancedWebServer_favicon)
1369+
15. [Async_AdvancedWebServer_MemoryIssues_SendArduinoString](examples/Async_AdvancedWebServer_MemoryIssues_SendArduinoString)
1370+
16. [Async_AdvancedWebServer_MemoryIssues_Send_CString](examples/Async_AdvancedWebServer_MemoryIssues_Send_CString)
1371+
17. [Async_AdvancedWebServer_SendChunked](examples/Async_AdvancedWebServer_SendChunked)
1372+
18. [AsyncWebServer_SendChunked](examples/AsyncWebServer_SendChunked)
1373+
19. [Async_WebSocketsServer](examples/Async_WebSocketsServer) **New**
13731374

13741375
---
13751376
---
@@ -1402,7 +1403,7 @@ Following are debug terminal output and screen shots when running example [Async
14021403

14031404
```cpp
14041405
Start Async_AdvancedWebServer on TEENSY 4.1 with Teensy4.1 QNEthernet
1405-
AsyncWebServer_Teensy41 v1.6.1
1406+
AsyncWebServer_Teensy41 v1.6.2
14061407
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.107
14071408
HTTP EthernetWebServer is @ IP : 192.168.2.107
14081409
```
@@ -1420,7 +1421,7 @@ Following is debug terminal output when running example [WebClient](examples/Web
14201421

14211422
```cpp
14221423
Start WebClient on TEENSY 4.1 with Teensy4.1 QNEthernet
1423-
AsyncWebServer_Teensy41 v1.6.1
1424+
AsyncWebServer_Teensy41 v1.6.2
14241425
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.107
14251426

14261427
Starting connection to server...
@@ -1491,7 +1492,7 @@ Following is debug terminal output when running example [MQTTClient_Auth](exampl
14911492

14921493
```cpp
14931494
Start MQTTClient_Auth on TEENSY 4.1 with Teensy4.1 QNEthernet
1494-
AsyncWebServer_Teensy41 v1.6.1
1495+
AsyncWebServer_Teensy41 v1.6.2
14951496
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.107
14961497
Attempting MQTT connection to broker.emqx.io...connected
14971498
Message Send : MQTT_Pub => Hello from MQTTClient_Auth on TEENSY 4.1 with Teensy4.1 QNEthernet
@@ -1511,7 +1512,7 @@ Following is debug terminal output when running example [MQTTClient_Basic](examp
15111512

15121513
```cpp
15131514
Start MQTTClient_Basic on TEENSY 4.1 with Teensy4.1 QNEthernet
1514-
AsyncWebServer_Teensy41 v1.6.1
1515+
AsyncWebServer_Teensy41 v1.6.2
15151516
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.107
15161517
Attempting MQTT connection to broker.emqx.io...connected
15171518
Message Send : MQTT_Pub => Hello from MQTTClient_Basic on TEENSY 4.1 with Teensy4.1 QNEthernet
@@ -1538,7 +1539,7 @@ Following is debug terminal output when running example [MQTT_ThingStream](examp
15381539

15391540
```cpp
15401541
Start MQTT_ThingStream on TEENSY 4.1 with Teensy4.1 QNEthernet
1541-
AsyncWebServer_Teensy41 v1.6.1
1542+
AsyncWebServer_Teensy41 v1.6.2
15421543
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.107
15431544
***************************************
15441545
Teensy41_Pub
@@ -1571,7 +1572,7 @@ Following is the debug terminal and screen shot when running example [Async_Adva
15711572

15721573
```cpp
15731574
Start Async_AdvancedWebServer_MemoryIssues_Send_CString on TEENSY 4.1 with Teensy4.1 QNEthernet
1574-
AsyncWebServer_Teensy41 v1.6.1
1575+
AsyncWebServer_Teensy41 v1.6.2
15751576

15761577
HEAP DATA - Start => Free heap: 483328 Used heap: 0
15771578
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.83
@@ -1595,7 +1596,7 @@ While using `Arduino String`, the HEAP usage is very large
15951596

15961597
```cpp
15971598
Start Async_AdvancedWebServer_MemoryIssues_SendArduinoString on TEENSY 4.1 with Teensy4.1 QNEthernet
1598-
AsyncWebServer_Teensy41 v1.6.1
1599+
AsyncWebServer_Teensy41 v1.6.2
15991600

16001601
HEAP DATA - Start => Free heap: 483328 Used heap: 0
16011602
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.83
@@ -1635,7 +1636,7 @@ Following is debug terminal output when running example [Async_AdvancedWebServer
16351636

16361637
```cpp
16371638
Start Async_AdvancedWebServer_SendChunked on TEENSY 4.1 with Teensy4.1 QNEthernet
1638-
AsyncWebServer_Teensy41 v1.6.1
1639+
AsyncWebServer_Teensy41 v1.6.2
16391640
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.92
16401641
AsyncWebServer is @ IP : 192.168.2.92
16411642
.[AWS] Total length to send in chunks = 31235
@@ -1704,7 +1705,7 @@ Following is debug terminal output when running example [AsyncWebServer_SendChun
17041705

17051706
```cpp
17061707
Start AsyncWebServer_SendChunked on TEENSY 4.1 with Teensy4.1 QNEthernet
1707-
AsyncWebServer_Teensy41 v1.6.1
1708+
AsyncWebServer_Teensy41 v1.6.2
17081709
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.92
17091710
AsyncWebServer is @ IP : 192.168.2.92
17101711
.[AWS] Total length to send in chunks = 46302
@@ -1750,6 +1751,30 @@ AsyncWebServer is @ IP : 192.168.2.92
17501751
```
17511752

17521753

1754+
---
1755+
1756+
#### 9. Async_WebSocketsServer on TEENSY 4.1 QNEthernet
1757+
1758+
1759+
Following is debug terminal output when running example [Async_WebSocketsServer](examples/Async_WebSocketsServer) on `Teensy4.1` using Built-in Ethernet and `QNEthernet` Library, to demo how to use to demo how to use `Async_WebSockets`. The Client is using [WSClient.py](https://github.com/khoih-prog/AsyncWebServer_Teensy41/blob/main/examples/Async_WebSocketsServer/WSClient_Python/WSClient.py)
1760+
1761+
1762+
```cpp
1763+
Starting Async_WebSocketsServer on TEENSY 4.1 with Teensy4.1 QNEthernet
1764+
AsyncWebServer_Teensy41 v1.6.2
1765+
Initialize Ethernet using DHCP => Connected! IP address:192.168.2.119
1766+
ws[Server: /ws][ClientID: 1] WSClient connected
1767+
ws[Server: /ws][ClientID: 1] text-message[len: 13]: Hello, Server
1768+
ws[Server: /ws][ClientID: 1] WSClient disconnected
1769+
ws[Server: /ws][ClientID: 2] WSClient connected
1770+
ws[Server: /ws][ClientID: 2] text-message[len: 13]: Hello, Server
1771+
ws[Server: /ws][ClientID: 2] WSClient disconnected
1772+
ws[Server: /ws][ClientID: 3] WSClient connected
1773+
ws[Server: /ws][ClientID: 3] text-message[len: 13]: Hello, Server
1774+
```
1775+
1776+
1777+
17531778
---
17541779
---
17551780

@@ -1801,7 +1826,7 @@ Submit issues to: [AsyncWebServer_Teensy41 issues](https://github.com/khoih-prog
18011826
8. Support using `CString` to save heap to send `very large data`. Check [request->send(200, textPlainStr, jsonChartDataCharStr); - Without using String Class - to save heap #8](https://github.com/khoih-prog/Portenta_H7_AsyncWebServer/pull/8)
18021827
9. Add examples [Async_AdvancedWebServer_SendChunked](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/Async_AdvancedWebServer_SendChunked) and [AsyncWebServer_SendChunked](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/AsyncWebServer_SendChunked) to demo how to use `beginChunkedResponse()` to send large `html` in chunks
18031828
10. Use `allman astyle` and add `utils`
1804-
1829+
11. Add examples [Async_WebSocketsServer](https://github.com/khoih-prog/AsyncWebServer_Teensy41/tree/main/examples/Async_WebSocketsServer) to demo how to use `Async_WebSockets`
18051830

18061831

18071832
---

changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@
99
<a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Donate to my libraries using BuyMeACoffee" style="height: 50px !important;width: 181px !important;" ></a>
1010
<a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://img.shields.io/badge/buy%20me%20a%20coffee-donate-orange.svg?logo=buy-me-a-coffee&logoColor=FFDD00" style="height: 20px !important;width: 200px !important;" ></a>
1111

12+
1213
---
1314
---
1415

1516
## Table of contents
1617

1718
* [Table of contents](#table-of-contents)
1819
* [Changelog](#changelog)
20+
* [Releases v1.6.2](#releases-v162)
1921
* [Releases v1.6.1](#releases-v161)
2022
* [Releases v1.6.0](#releases-v160)
2123
* [Releases v1.5.0](#releases-v150)
@@ -26,11 +28,16 @@
2628

2729
## Changelog
2830

31+
### Releases v1.6.2
32+
33+
1. Add examples [Async_WebSocketsServer](https://github.com/khoih-prog/AsyncWebServer_Teensy41/tree/main/examples/Async_WebSocketsServer) to demo how to use `Async_WebSockets`
34+
2935
### Releases v1.6.1
3036

3137
1. Add examples [Async_AdvancedWebServer_SendChunked](https://github.com/khoih-prog/AsyncWebServer_Teensy41/tree/main/examples/Async_AdvancedWebServer_SendChunked) and [AsyncWebServer_SendChunked](https://github.com/khoih-prog/AsyncWebServer_Teensy41/tree/main/examples/AsyncWebServer_SendChunked) to demo how to use `beginChunkedResponse()` to send large `html` in chunks
3238
2. Use `allman astyle` and add `utils`
3339

40+
3441
### Releases v1.6.0
3542

3643
1. Support using `CString` to save heap to send `very large data`. Check [request->send(200, textPlainStr, jsonChartDataCharStr); - Without using String Class - to save heap #8](https://github.com/khoih-prog/Portenta_H7_AsyncWebServer/pull/8) and [All memmove() removed - string no longer destroyed #11](https://github.com/khoih-prog/Portenta_H7_AsyncWebServer/pull/11)

library.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name":"AsyncWebServer_Teensy41",
3-
"version": "1.6.1",
3+
"version": "1.6.2",
44
"description":"Asynchronous HTTP and WebSocket Server Library for Teensy 4.1 using QNEthernet. This library is one of the current or future Async libraries to support Teensy 4.1 using QNEthernet, such as AsyncHTTPRequest_Generic, AsyncHTTPSRequest_Generic, AsyncMQTT_Generic, Teensy41_AsyncWebServer, Teensy41_AsyncUDP, Teensy41_AsyncDNSServer, AsyncWebServer_Teensy41_SSL, etc. Now supporting using CString to save heap to send very large data and examples to demo how to use beginChunkedResponse() to send large html in chunks",
55
"keywords":"async, tcp, http, websocket, webserver, async-tcp, async-http, async-webserver, async-websocket, teensy, teensy41, teensy-41, qnethernet, lwip",
66
"authors":
@@ -32,7 +32,7 @@
3232
{
3333
"owner": "ssilverman",
3434
"name": "QNEthernet",
35-
"version": ">=0.16.0",
35+
"version": ">=0.17.0",
3636
"platforms": ["teensy"]
3737
}
3838
],

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=AsyncWebServer_Teensy41
2-
version=1.6.1
2+
version=1.6.2
33
author=Hristo Gochkov, Khoi Hoang
44
maintainer=Khoi Hoang <khoih-dot-prog@gmail.com>
55
sentence=Asynchronous HTTP and WebSocket Server Library for Teensy 4.1 using QNEthernet

platformio/platformio.ini

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,29 @@ upload_speed = 921600
2626
;monitor_speed = 9600
2727
;monitor_port = COM11
2828

29+
; ============================================================
2930
; Checks for the compatibility with frameworks and dev/platforms
3031
; Adjust as necessary
3132
lib_compat_mode = strict
3233
lib_ldf_mode = chain+
3334
;lib_ldf_mode = deep+
3435

36+
; ============================================================
3537
lib_deps =
3638
; PlatformIO 4.x
3739
; Teensy41_AsyncTCP@>=1.1.0
38-
; QNEthernet@>=0.16.0
40+
; QNEthernet@>=0.17.0
3941
;
4042
; PlatformIO 5.x
4143
khoih-prog/Teensy41_AsyncTCP@>=1.1.0
42-
ssilverman/QNEthernet@>=0.16.0
44+
ssilverman/QNEthernet@>=0.17.0
4345

44-
46+
; ============================================================
4547
build_flags =
4648
; set your build_flags
4749

48-
[env:STM32]
50+
; ============================================================
51+
[env:teensy]
4952
platform = teensy
5053
framework = arduino
5154

src/AsyncEventSource_Teensy41.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
You should have received a copy of the GNU General Public License along with this program.
1818
If not, see <https://www.gnu.org/licenses/>.
1919
20-
Version: 1.6.1
20+
Version: 1.6.2
2121
2222
Version Modified By Date Comments
2323
------- ----------- ---------- -----------
@@ -26,6 +26,7 @@
2626
1.5.0 K Hoang 01/10/2022 Fix issue with slow browsers or network. Add function and example to support favicon.ico
2727
1.6.0 K Hoang 06/10/2022 Option to use non-destroyed cString instead of String to save Heap
2828
1.6.1 K Hoang 10/11/2022 Add examples to demo how to use beginChunkedResponse() to send in chunks
29+
1.6.2 K Hoang 16/01/2023 Add examples Async_WebSocketsServer
2930
*****************************************************************************************************************************/
3031

3132
#if !defined(_AWS_TEENSY41_LOGLEVEL_)

src/AsyncEventSource_Teensy41.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
You should have received a copy of the GNU General Public License along with this program.
1818
If not, see <https://www.gnu.org/licenses/>.
1919
20-
Version: 1.6.1
20+
Version: 1.6.2
2121
2222
Version Modified By Date Comments
2323
------- ----------- ---------- -----------
@@ -26,6 +26,7 @@
2626
1.5.0 K Hoang 01/10/2022 Fix issue with slow browsers or network. Add function and example to support favicon.ico
2727
1.6.0 K Hoang 06/10/2022 Option to use non-destroyed cString instead of String to save Heap
2828
1.6.1 K Hoang 10/11/2022 Add examples to demo how to use beginChunkedResponse() to send in chunks
29+
1.6.2 K Hoang 16/01/2023 Add examples Async_WebSocketsServer
2930
*****************************************************************************************************************************/
3031

3132
#pragma once

0 commit comments

Comments
 (0)