2015-05-24 16:02:22 +02:00
WebSocket Server and Client for Arduino
===========================================
2015-05-24 00:18:52 +02:00
2015-05-24 16:02:22 +02:00
a WebSocket Server and Client for Arduino based on RFC6455.
2017-02-22 14:29:26 +01:00
2015-05-24 16:02:22 +02:00
##### Supported features of RFC6455 #####
- text frame
- binary frame
- connection close
- ping
- pong
- continuation frame
2017-02-22 14:29:26 +01:00
2015-05-24 16:02:22 +02:00
##### 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)
2015-12-28 03:25:01 +01:00
- Client send big frames with mask 0x00000000 (on AVR all frames)
2017-02-22 14:29:26 +01:00
- continuation frame reassembly need to be handled in the application code
2016-03-16 16:25:31 +01:00
##### Limitations for Async #####
- Functions called from within the context of the websocket event might not honor `yield()` and/or `delay()` . See [this issue ](https://github.com/Links2004/arduinoWebSockets/issues/58#issuecomment-192376395 ) for more info and a potential workaround.
- wss / SSL is not possible.
2017-02-22 14:29:26 +01:00
2015-05-24 16:02:22 +02:00
##### Supported Hardware #####
- ESP8266 [Arduino for ESP8266 ](https://github.com/Links2004/Arduino )
2016-01-30 12:02:09 +01:00
- ESP31B
2017-02-22 14:29:26 +01:00
- Particle with STM32 ARM Cortex M3
- ATmega328 with Ethernet Shield (ATmega branch)
- ATmega328 with enc28j60 (ATmega branch)
- ATmega2560 with Ethernet Shield (ATmega branch)
- ATmega2560 with enc28j60 (ATmega branch)
2016-01-29 13:44:18 +01:00
###### Note: ######
2016-02-20 12:30:38 +01:00
version 2.0 and up is not compatible with AVR/ATmega, check ATmega branch.
2017-02-22 14:29:26 +01:00
2016-01-29 13:44:18 +01:00
Arduino for AVR not supports std namespace of c++.
2017-02-22 14:29:26 +01:00
2015-12-10 11:16:08 +01:00
### wss / SSL ###
supported for:
- wss client on the ESP8266
2016-06-11 10:17:13 +01:00
- wss / SSL is not natively supported in WebSocketsServer however it is possible to achieve secure websockets
by running the device behind an SSL proxy. See [Nginx ](examples/Nginx/esp8266.ssl.reverse.proxy.conf ) for a
2017-02-22 14:29:26 +01:00
sample Nginx server configuration file to enable this.
2016-01-29 13:28:05 +01:00
### ESP Async TCP ###
2016-01-29 13:44:18 +01:00
This libary can run in Async TCP mode on the ESP.
2017-02-03 13:53:46 +02:00
The mode can be activated in the ```WebSockets.h` `` (see WEBSOCKETS_NETWORK_TYPE define).
2016-01-29 13:44:18 +01:00
2016-02-20 12:30:38 +01:00
[ESPAsyncTCP ](https://github.com/me-no-dev/ESPAsyncTCP ) libary is required.
2016-01-29 13:44:18 +01:00
2016-10-20 15:46:44 -04:00
2015-05-24 16:02:22 +02:00
### Issues ###
Submit issues to: https://github.com/Links2004/arduinoWebSockets/issues
2015-11-27 00:44:52 +01:00
[](https://gitter.im/Links2004/arduinoWebSockets?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
2015-05-24 16:02:22 +02:00
### License and credits ###
The library is licensed under [LGPLv2.1 ](https://github.com/Links2004/arduinoWebSockets/blob/master/LICENSE )
[libb64 ](http://libb64.sourceforge.net/ ) written by Chris Venter. It is distributed under Public Domain see [LICENSE ](https://github.com/Links2004/arduinoWebSockets/blob/master/src/libb64/LICENSE ).