The WebSocket protocol is implemented in different web browsers, web servers, and run-time environments and libraries acting as clients or servers. The following is a table of different features of notable WebSocket implementations.
Client (library) | Server (library) | Version compared | Protocol (spec) version support | Protocol test report | License | Implementation: language, environment | API: language, environment | Self-hosted server | Text message support | Binary message support | API message-based | API frame-based | API streaming input-output | Flow-control framework | Automatic pongs for pings | Automatic heartbeat pings | Manual pings-pongs | Frame size limit | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Google Chrome 15[1] | 15.0.874.8 | 8 (10) | C++, WebKit | JavaScript, HTML5 | , No | ≥ 16 MB (memory-limited?) | |||||||||||||||
Google Chrome 16 | 16.0.912 | 13 (17/RFC 6455) | C++, WebKit | JavaScript, HTML5 | , No | ≥ 16 MB (memory-limited?) | |||||||||||||||
Mozilla Firefox 7[2] | 7 beta | 8 (10) | C++, Necko | JavaScript, HTML5 | , No | < 16 MB | |||||||||||||||
Mozilla Firefox 11 | 11.0 | 13 (17/RFC 6455) | C++, Necko | JavaScript, HTML5 | , No | < 2 GB (memory-limited?) | |||||||||||||||
Achex WS[3] | 2.17 | RFC 6455 | C++ | C++, JavaScript | 2^16 | ||||||||||||||||
Kaazing WebSocket Gateway[4] | 5.0 Dec 2014 | RFC 6455 | Java, JMS | JavaScript, Flash/Flex, Silverlight, Objective-C & iOS, Java, Java & Android, .NET, Xamarin | memory-limited, configurable | ||||||||||||||||
Lightstreamer[5] | 7.4.4 | RFC 6455 | Java | JavaScript, Android, Java, Swift, iOS, macOS, tvOS, watchOS, visionOS, .NET Standard, Python, Flash/Flex, Silverlight, J2ME | Data driven, configurable | ||||||||||||||||
MigratoryData[6] | 6.0.5 | RFC 6455 | Java | , No | 263, configurable | ||||||||||||||||
Mongoose[7] | 7.9 | RFC 6455 | C/C++ | 263, configurable | |||||||||||||||||
noPoll[8] | 0.3.2 | RFC 6455 | ANSI C | ANSI C | memory-limited, configurable | ||||||||||||||||
POCO C++ Libraries[9] | 1.4.6 | RFC 6455 | C++, POCO C++ Libraries | C++ | memory-limited, configurable | ||||||||||||||||
PowerWebSockets[10] | 15.176.5188 | RFC 6455 | Test report[11] | .NET | .NET Framework, .NET Compact Framework, Xamarin. iOS, Xamarin.Android, Windows Phone, Silverlight, Mono | memory-limited, configurable | |||||||||||||||
QtWebSockets[12] | 1.0 | RFC 6455 | C++, Qt | Qt | memory-limited, configurable | ||||||||||||||||
RingSocket[13] | 1.0 | RFC 6455 | C | C | unlimited/configurable | ||||||||||||||||
Resin[14] | 4.026 | RFC 6455 | Java, C | Java | memory-limited, configurable | ||||||||||||||||
WebSocketListener[15] | 2.1.3 | RFC 6455 | .NET, Mono | .NET, Mono | Configurable | ||||||||||||||||
Wt[16] | 3.2.0 | 0,7,8,13 (17) | [? Report] | C++, Boost Asio | C++ | memory-limited, configurable | |||||||||||||||
XSockets.NET[17] | 5.* | RFC 6455 | .NET | Server-languages: Windows (.NET), Unix-Linux (Mono) Client-languages: JavaScript, .NET, Mono | memory-limited, configurable | ||||||||||||||||
RIWA Gateway[18] | 2.01 | RFC 6455 | Java | Java, Android, iOS, JavaScript | memory-limited, configurable | ||||||||||||||||
μWebSockets[19] | v0.14.0 | RFC 6455 | Test report | Testsuite report">μWebSockets Autobahn|Testsuite report | C++, epoll, Libuv, Boost Asio | C++, JavaScript, Node.js | memory-limited, configurable | ||||||||||||||
Boost.Beast[20] | 94 | RFC 6455 | Test report | Testsuite report">Beast.WebSocket Autobahn|Testsuite report | C++, Boost Asio | C++ | unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked) | ||||||||||||||
libwebsockets[21] | 2.4 | RFC 6455 + RFC 7692 | Test report | Testsuite report">libwebsockets.org lws Autobahn|Testsuite report | C, libuv,, libevent, poll, external poll loop integration, OpenSSL, mbedTLS | C, HTML5, JavaScript | , yes | unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked) | |||||||||||||
websocket++[22] | 0.8.2 | RFC 6455 | C++11 | C++11 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ||||||
facil.io[23] | 0.7.1 | RFC 6455 | C | C | , yes | configurable client to server limits. unlimited (chunked) server to client. | |||||||||||||||
oatpp-websocket[24] | 1.3.0 | RFC 6455 | C++11, Oat++ | C++11, Oat++ | unlimited (packets streamed to user code) |