WebSocket++ is an open source (BSD license) header only C++ library that impliments RFC6455 The WebSocket Protocol. It allows integrating WebSocket client and server functionality into C++ programs. It uses interchangable network transport modules including one based on C++ iostreams and one based on Boost Asio.
The latest version, 0.3.x, is relatively stable and nearing its first beta release. 0.3.x is feature frozen and will receive only documentation and bug fixes. Major new features will be targeting 0.4.x. 0.4.x will be backwards compatible with 0.3.x (unlike the move from 0.2 -> 0.3).
0.2.x, the previous version, is no longer under active development for major new features, but it is lightly supported with minor features and bug/security fixes. It can be found in the 0.2.x branch on Github.
|Library Type||Header only (0.3.x+)|
|Protocol Support||Full support: RFC6455
Partial support: Hixie draft 76, Hybi Drafts 7-17
|Browser Support||Full support: FireFox 6+, Chrome 14+, IE 10+, Safari & Mobile Safari 6+,
Partial support: FireFox 4-5, Chrome 4-13, Safari 5.0.2+, Mobile Safari 4.2+, Opera 11.0+
|Platform Support||Generally portable. Tested with Linux, OS X, Windows. GCC, LLVM/Clang, Visual Studio. Intel x64, i386, PowerPC, ARM|
|API Type||Asynchronous, message based|
|Message Types||Binary and utf-8 text (not all browsers support binary)|
|Message Size Limit||memory limited, configurable|
|Proxy Support||Outgoing explicit proxies for regular and secure WebSocket. Basic authentication.|
|Flow Control||Configurable and poll-able queuing for sending and receiving.|
|Handshake features||Passes through all HTTP headers for application use
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)