http_server example: WebSocket server to set final flag in async messages

Closes https://github.com/espressif/esp-idf/issues/5405
This commit is contained in:
David Cermak
2020-06-19 08:20:33 +02:00
committed by bot
parent a0a0d34da6
commit 4da38b6769
2 changed files with 2 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ ws_server_example_test.py could be used as a simple WS client).
The server registers WebSocket handler which echoes back the received WebSocket frame. It also demonstrates The server registers WebSocket handler which echoes back the received WebSocket frame. It also demonstrates
use of asynchronous send, which is triggered on reception of a certain message. use of asynchronous send, which is triggered on reception of a certain message.
Please note that the WebSocket HTTPD server does not automatically fragment messages, so the application code must deal with fragmentation, setting `final` flag as appropriate. Single (complete/unfragmented) WebSocket frames must have the `FIN` flag set to be accepted as valid (see [RFC6455, section 5.4](https://tools.ietf.org/html/rfc6455#section-5.4)).
### Hardware Required ### Hardware Required

View File

@@ -48,6 +48,7 @@ static void ws_async_send(void *arg)
ws_pkt.payload = (uint8_t*)data; ws_pkt.payload = (uint8_t*)data;
ws_pkt.len = strlen(data); ws_pkt.len = strlen(data);
ws_pkt.type = HTTPD_WS_TYPE_TEXT; ws_pkt.type = HTTPD_WS_TYPE_TEXT;
ws_pkt.final = true;
httpd_ws_send_frame_async(hd, fd, &ws_pkt); httpd_ws_send_frame_async(hd, fd, &ws_pkt);
free(resp_arg); free(resp_arg);