skaarj1989/mWebSockets

can't send from server Payload > 2048

Closed this issue · 4 comments

Describe the bug

On my MwebSockets server i can't send payload > 2048
On varios javascript client i have the error

WebSocketClient.html:37 WebSocket connection to 'ws://192.168.4.30:3000/' failed: Could not decode a text frame as UTF-8.

Environment info

  • IDE w/version [platform.io vs code]
  • Platform/Board: [ESP32]
  • Network controller (shield or module): [W5500 or wifi]

Expected behavior
If my payload is <= 2048 the client receive the message

Failure log

[Line #0] GET / HTTP/1.1
[Line #1] Host: 192.168.4.30:3000
[Line #2] Connection: Upgrade
[Line #3] Pragma: no-cache
[Line #4] Cache-Control: no-cache
[Line #5] User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
[Line #6] Upgrade: websocket
[Line #7] Origin: null
[Line #8] Sec-WebSocket-Version: 13
[Line #9] Accept-Encoding: gzip, deflate
[Line #10] Accept-Language: it,en-GB;q=0.9,en;q=0.8,it-IT;q=0.7
[Line #11] Sec-WebSocket-Key: bEXwqjPKVFCpFdrTY2doLA==
[Line #12] Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
[Line #13]
New client: 192.168.5.25
TX FRAME : OPCODE=1, FIN=True, RSV=0, PAYLOAD-LEN=2049, MASK=None
{"name":"xxxxxxxx","network":"ethernet","wifi_sid":"iot","wifi_password":"wifipwd","softap_password":"12345678","dhcp":0,"ip":"192.168.4.30","subnet":"255.255.255.0","gateway":"192.168.5.1","dns":"192.168.5.4","mqtt":0,"mqtt_ip":"192.168.1.35","mqtt_user"TX BYTES = 2053

Additional context

i have on the config.h

constexpr uint16_t kBufferMaxSize{4096};

Update: over wifi network it seems to works.
The problem is over ethernet (W5500).

Any idea what can I do?

Thank you

OK, the problem is on the ethernet.h library that is limited to 2048bytes.
You need to reduce MAX_SOCK_NUM and uncomment #define ETHERNET_LARGE_BUFFERS.

Now it is working.

Thank you again for your great work.

Hi @Sampozzo I'm glad that you resolved your own issue ;) I think it's something worth mentioning in the README as it might bite someone in the future too.

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.