Closed giliweb closed 4 years ago
This is what i get if i enable DEBUG 4
09:06:26.795 -> [WS] 0 new client
09:06:26.795 -> [WS] 0 client connection lost
09:06:26.795 -> [WS] 0 client disconnected.
09:06:26.795 -> [0] Disconnected!
09:06:26.795 -> [WS] 0 new client
09:06:26.795 -> [WS] 0 client connection lost
09:06:26.795 -> [WS] 0 client disconnected.
09:06:26.795 -> [0] Disconnected!
09:06:26.795 -> [WS] 0 new client
09:06:26.795 -> [WS] 0 client connection lost
09:06:26.795 -> [WS] 0 client disconnected.
09:06:26.795 -> [0] Disconnected!
09:06:26.795 -> [WS] 0 new client
09:06:26.795 -> [WS] 0 client connection lost
09:06:26.795 -> [WS] 0 client disconnected.
09:06:26.795 -> [0] Disconnected!
09:06:26.795 -> [WS] 0 new client
09:06:26.795 -> [WS] 0 client connection lost
09:06:26.795 -> [WS] 0 client disconnected.
09:06:26.795 -> [0] Disconnected!
Hi @giliweb
The messages are just for debugging, and in the current example, the debug level is set to the highest level. It's possible that too many unnecessary messages sent to Serial port creates the unresponsiveness and crash.
Can you try by reduce the debug level to minimum (at the beginning of sketch), then inform if it's OK
#define _WEBSOCKETS_LOGLEVEL_ 0
I'll spend time to go deeper to find the bug and fix.
Hi @khoih-prog thanks for your quick reply. My main concern is not the crash of the serial monitor. The example is continuously triggering the connected/disconnected event, even though no clients are yet connected. That's the issue.
@giliweb
Understand that, that's why I said
I'll spend time to go deeper to find the bug and fix.
Hi @giliweb
Currently, I'm a little busy and can't spend lot of time on the bug. I hope you can somehow help to speed up the process by doing this
Try the original WebSocketServer for ESP8266 on ESP8266 or WebSocketServer for ESP32 on ESP32
If you experience the same problem, please post an issue on arduinoWebSockets Issues
As this library is currently new and just a port from ESP to other platforms, it inherits all the features and bugs from the original arduinoWebSockets Library.
Thanks,
I should have an esp32 board somewhere, I'll give it a try
Hi @giliweb
Just spent some time to look at the issue. It seems more complicated than normal simple bug. It'll affect the WebSockets Server function, the WebSockets Client function is still OK.
The main issue is the original library WiFiNINA / WiFiNINA_Generic is not fully compatible with the original WebSockets library, originally written for ESP. It'll take much longer time to find out and solve the issue. Even it'll need a drastic measure to re-write / restructure either the WiFiNINA_Generic or WebSockets_Generic library.
So, don't expect this will be solved quickly. If you can find another quicker solution, I suggest you go with that.
The No free space new client / Counting of clients wrong? is another aspect of this same bug / issue.
Good Luck,
Hi @giliweb
Please try the new WebSockets2_Generic Library I believe there is no WebSocket Server issue as this WebSockets_Generic Library.
This is terminal debug output when running SAMDUE-Ethernet-Server on SAM DUE board with Ethernet W5100 shield using EthernetLarge library, and receiving WebSockets connection from an ESP8266 board.
Starting WebSockets2_Generic SAMDUE-Ethernet-Server on SAM DUE
[SETUP] BOOT WAIT 4
[SETUP] BOOT WAIT 3
[SETUP] BOOT WAIT 2
[SETUP] BOOT WAIT 1
W5100 init, using SS_PIN_DEFAULT = 10, new ss_pin = 10, W5100Class::ss_pin = 10
W5100::init: W5100, SSIZE =4096
WebSockets Server Running and Ready on SAM DUE
IP address: 192.168.2.153, Port: 8080
H[WS] WebsocketsServer::recvHandshakeRequest: value = 192.168.2.153
[WS] WebsocketsServer::recvHandshakeRequest: value = ********
[WS] WebsocketsServer::recvHandshakeRequest: value = websocket
[WS] WebsocketsServer::recvHandshakeRequest: value = Upgrade
[WS] WebsocketsServer::recvHandshakeRequest: value = 13
[WS] WebsocketsServer::recvHandshakeRequest: value = TinyWebsockets Client
[WS] WebsocketsServer::recvHandshakeRequest: value = Basic
[WS] WebsocketsServer::recvHandshakeRequest: value = https://github.com/khoih-prog/Websockets2_Generic
Got Message: Hello to Server from ESP8266
[WS] WebsocketsServer::recvHandshakeRequest: value = 192.168.2.153
[WS] WebsocketsServer::recvHandshakeRequest: value = ********
[WS] WebsocketsServer::recvHandshakeRequest: value = websocket
[WS] WebsocketsServer::recvHandshakeRequest: value = Upgrade
[WS] WebsocketsServer::recvHandshakeRequest: value = 13
[WS] WebsocketsServer::recvHandshakeRequest: value = TinyWebsockets Client
[WS] WebsocketsServer::recvHandshakeRequest: value = Basic
[WS] WebsocketsServer::recvHandshakeRequest: value = https://github.com/khoih-prog/Websockets2_Generic
Got Message: Hello to Server from ESP8266
HHHHHHHHH
Many Web services require WebSockets library, which is so far written only for ESP8266/ESP32 boards. The ESP boards so far rely on the Markus Sattler's WebSockets Library to connect to Alexa via Sinric or SinricPro skills.
This WebSockets2_Generic library is based on and modified from Gil Maimon's ArduinoWebSockets Library to provide support to many more boards, such as Arduino SAMD21, Adafruit SAMD21/SAMD51, nRF52, STM32, Teensy, SAM DUE, etc. and enable those boards to use WebSockets services, including voice-control Alexa along with Blynk. Those supported boards can also run WebSockets Server. The WebSockets can be used with ESP’s WiFi, WiFiNINA, W5x00/ENC28J60/LAN8742A Ethernet, ESP8266/ESP32-AT modules/shields.
The new WebSockets2_Generic v1.0.6 has been released with these new features to fix the blocking action of WebSockets Server that prevents the concurrent running of WebServer and WebSockets Server you experienced so far.
Please try the example SAMD-AdvancedWebServer on Nano-33-IoT to have feelings. Then modify it to fix your purpose.
Try to run the example Generic_WebSocketServer_WiFiNINA on my Arduino IoT 33. It connects to my Home wifi, then it just starts spamming the DISCONNECTED event:
It continues like that until arduino ide just crashes. I'm not even trying to connect another device at this point, cos i can't. Can you please help with this issue? I found this library has a lot of potential but i can't use it. Or maybe i can contribute if you point me in the right direction, thanks.