WebSocket++ is a full featured C++/Boost ASIO implimentation of RFC6455, the WebSocket protocol which can be used to build applications that feature WebSocket client and server functionality.
Features
| Server Library | Yes |
| Client Library | Yes |
| License | BSD |
| Library Type | Static or dynamic |
| Protocol Support | Full support: RFC6455 Partial support: Hixie draft 76, Hybi Drafts 7-17 |
| Browser Support | Full support: FireFox 6+, Chrome 14+, IE 10+ Partial support: FireFox 4-5, Chrome 4-13, Safari 5.0.2+, Mobile Safari 4.2+, Opera 11.0+ |
| Platforms | In theory anything that Boost runs on. Has been tested on Mac OS X, Linux using GCC 4.2+ and LLVM/Clang 2.8+, and lightly on Windows using Visual Studio 2010+ |
| API Type | Asynchronous, message based |
| Message Types | Binary and utf-8 text (not all browsers support binary) |
| Message Size Limit | memory limited, configurable |
| TLS Support | Yes |
| IPv6 Support | Yes |
| Manual Ping/Pong | Yes |
| Flow Control | Configurable and poll-able queuing for sending and receiving. |
| Handshake features | Passes through all HTTP headers for application use subprotocol negotiation extension request data pass through custom HTTP errors for application defined handshake failures application defined HTTP headers in handshake response HTTP request pass through |
| Protocol Test Report | Autobahn Report (Server) Autobahn Report (Client) |
How to get it?
WebSocket++ code is available on github
WebSocket++ documentation is available on the project's github wiki