WebSocket Server and Client for Arduino
a WebSocket Server and Client for Arduino based on RFC6455.
Supported features of RFC6455
- text frame
- binary frame
- connection close
- ping
- pong
Not supported features of RFC6455
- continuation frame
Limitations
- max input length is limited to the ram size and the
WEBSOCKETS_MAX_DATA_SIZE
define - max output length has no limit (the hardware is the limit)
- Client send big frames with mask 0x00000000 (on AVR all frames)
Limitations for Async
- Functions called from within the context of the websocket event might not honor
yield()
and/ordelay()
. See this issue for more info and a potential workaround. - wss / SSL is not possible.
Supported Hardware
- ESP8266 Arduino for ESP8266
- ESP31B
- ATmega328 with Ethernet Shield (ATmega branch)
- ATmega328 with enc28j60 (ATmega branch)
- ATmega2560 with Ethernet Shield (ATmega branch)
- ATmega2560 with enc28j60 (ATmega branch)
Note:
version 2.0 and up is not compatible with AVR/ATmega, check ATmega branch.
Arduino for AVR not supports std namespace of c++.
wss / SSL
supported for:
- wss client on the ESP8266
ESP Async TCP
This libary can run in Async TCP mode on the ESP.
The mode can be aktivated in the WebSockets.h
(see WEBSOCKETS_NETWORK_TYPE define).
ESPAsyncTCP libary is required.
Issues
Submit issues to: https://github.com/Links2004/arduinoWebSockets/issues
License and credits
The library is licensed under LGPLv2.1
libb64 written by Chris Venter. It is distributed under Public Domain see LICENSE.