Comparison of WebSocket implementations
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 | Server | Version compared | Protocol 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 | 15.0.874.8 | 8 | C++, WebKit | JavaScript, HTML5 | , No | ≥ 16 MB | |||||||||||||
| Google Chrome 16 | 16.0.912 | 13 | C++, WebKit | JavaScript, HTML5 | , No | ≥ 16 MB | |||||||||||||
| Mozilla Firefox 7 | 7 beta | 8 | C++, | JavaScript, HTML5 | , No | < 16 MB | |||||||||||||
| Mozilla Firefox 11 | 11.0 | 13 | C++, | JavaScript, HTML5 | , No | < 2 GB | |||||||||||||
| Achex WS | 2.17 | RFC 6455 | C++ | C++, JavaScript | 2^16 | ||||||||||||||
| Kaazing WebSocket Gateway | 5.0 Dec 2014 | RFC 6455 | Java, JMS | JavaScript, Flash/Flex, Silverlight, Objective-C & iOS, Java, Java & Android, .NET, Xamarin | memory-limited, configurable | ||||||||||||||
| Lightstreamer | 7.4.7 | RFC 6455 | Java | JavaScript, Android, Java, Swift, iOS, macOS, tvOS, watchOS, visionOS, .NET Standard, C++, Python, Flash/Flex, Silverlight, J2ME | Data driven, configurable | ||||||||||||||
| MigratoryData | 6.0.5 | RFC 6455 | Java | JavaScript, iOS, Android, Java, C++, .NET, PHP, Node.js, Python | , No | 263, configurable | |||||||||||||
| Mongoose | 7.9 | RFC 6455 | C/C++ | C/C++ | 263, configurable | ||||||||||||||
| noPoll | 0.3.2 | RFC 6455 | ANSI C | ANSI C | memory-limited, configurable | ||||||||||||||
| POCO C++ Libraries | 1.4.6 | RFC 6455 | C++, POCO C++ Libraries | C++ | memory-limited, configurable | ||||||||||||||
| PowerWebSockets | 15.176.5188 | RFC 6455 | Test report | .NET | .NET Framework, .NET Compact Framework, Xamarin. iOS, Xamarin.Android, Windows Phone, Silverlight, Mono | memory-limited, configurable | |||||||||||||
| QtWebSockets | 1.0 | RFC 6455 | C++, Qt | Qt | memory-limited, configurable | ||||||||||||||
| RingSocket | 1.0 | RFC 6455 | C | C | unlimited/configurable | ||||||||||||||
| Resin | 4.026 | RFC 6455 | Java, C | Java | memory-limited, configurable | ||||||||||||||
| WebSocketListener | 2.1.3 | RFC 6455 | .NET, Mono | .NET, Mono | Configurable | ||||||||||||||
| Wt | 3.2.0 | 0,7,8,13 | C++, Boost Asio | C++ | memory-limited, configurable | ||||||||||||||
| XSockets.NET | 5.* | RFC 6455 | .NET | Server-languages: Windows, Unix-Linux Client-languages: JavaScript, .NET, Mono | memory-limited, configurable | ||||||||||||||
| RIWA Gateway | 2.01 | RFC 6455 | Java | Java, Android, iOS, JavaScript | memory-limited, configurable | ||||||||||||||
| μWebSockets | v0.14.0 | RFC 6455 | Test report | C++, epoll, Libuv, Boost Asio | C++, JavaScript, Node.js | memory-limited, configurable, server focused missing client support | |||||||||||||
| Boost.Beast | 94 | RFC 6455 | Test report | C++, Boost Asio | C++ | unlimited, permessage-deflate also unlimited | |||||||||||||
| libwebsockets | 2.4 | RFC 6455 + RFC 7692 | Test report | C, libuv,, libevent, poll, external poll loop integration, OpenSSL, mbedTLS | C, HTML5, JavaScript | , yes | unlimited, permessage-deflate also unlimited | ||||||||||||
| websocket++ | 0.8.2 | RFC 6455 | C++11 | C++11 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ||||
| facil.io | 0.7.1 | RFC 6455 | C | C | , yes | configurable client to server limits. unlimited server to client. | |||||||||||||
| oatpp-websocket | 1.3.0 | RFC 6455 | C++11, Oat++ | C++11, Oat++ | unlimited |