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 (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 | Message-based API | Frame-based API | Streaming API input/output | Flow-control framework | Automatic pongs for pings | Automatic heartbeat pings | Manual pings/pongs | Frame size limit | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Google Chrome 15[1] | Yes | No | 15.0.874.8 12 Sep 2011 |
8 (10) | complex | C++ / WebKit | JavaScript / HTML5 | No | Yes | No | Yes | No | No/No | No | Yes | No | No | ≥ 16 MB (memory-limited?) | |
Google Chrome 16[1] | Yes | No | 16.0.912 13 Dec 2011 |
13 (17/RFC 6455) | complex | C++ / WebKit | JavaScript / HTML5 | No | Yes | No | Yes | No | No/No | No | Yes | No | No | ≥ 16 MB (memory-limited?) | |
Mozilla Firefox 7[2] | Yes | No | 7 beta 12 Sep 2011 |
8 (10) | MPL & GPL & LGPL | C++ / Necko | JavaScript / HTML5 | No | Yes | No | Yes | No | No/No | No | Yes | No | No | < 16 MB | |
Mozilla Firefox 11[2] | Yes | No | 11.0 13 Mar 2012 |
13 (17/RFC 6455) | MPL & GPL & LGPL | C++ / Necko | JavaScript / HTML5 | No | Yes | Yes | Yes | No | No/No | No | Yes | No | No | < 2 GB (memory-limited?) | |
Achex WS [3] | Yes | Yes | 2.17 17 June 2014 |
RFC 6455 | new BSD License | C++ | C++/Javascript | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | 2^16 | |
Kaazing WebSocket Gateway[4] | Yes | Yes | 5.0 Dec 2014 | RFC 6455 | APL2 (Community Edition), Commercial (Enterprise Edition) | Java, JMS | JavaScript / Flash/Flex / Silverlight / Objective-C & iOS / Java / Java & Android / .NET / Xamarin | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | memory-limited, configurable | |
Lightstreamer [5] | Yes | Yes | 6.0.1 30 Jul 2015 |
RFC 6455 | Both Commercial and Freeware | Java | JavaScript / Flash/Flex / Silverlight / iOS / OS X / Java / J2ME / Android / .NET / Windows Phone / WinRT | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Data driven, configurable | |
MigratoryData[6] | Yes | Yes | 5.0.15 13 Oct 2015 |
RFC 6455 | Commercial | Java | JavaScript / iOS / Android / Java / C++ / .NET / PHP / Node.js / Python / Ruby | Yes | Yes | No | Yes | No | No/No | Yes | Yes | Yes | No | 263, configurable | |
noPoll[7] | Yes | Yes | 0.3.2 28 aug 2015 |
RFC 6455 | LGPL 2.1 | ANSI C | ANSI C | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | memory-limited, configurable | |
POCO C++ Libraries[8] | Yes | Yes | 1.4.6 23 Sep 2014 |
RFC 6455 | Boost Software License | C++ / POCO C++ Libraries | C++ | Yes | Yes | Yes | No | Yes | Yes | No | No | No | Yes | memory-limited, configurable | |
PowerWebSockets[9] | Yes | Yes | 15.176.5188 26 Jun 2015 |
RFC 6455 | Test report[10] | Commercial | .NET | .NET Framework / .NET Compact Framework / Xamarin.iOS / Xamarin.Android / Windows Phone / Silverlight / Mono | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | memory-limited, configurable |
Push Technology Diffusion[11] | Yes | Yes | 4.6.1 | RFC 6455 | Commercial | Java | JavaScript / Flash/Flex / Silverlight / Objective-C & iOS / Java / Java & Android / .NET / Java J2ME & BlackBerry / C/C++ / Node.js | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes[12] | Yes[12] | No | memory-limited, configurable | |
QtWebSockets[13] | Yes | Yes | 1.0 12 Nov 2013 |
RFC 6455 | LGPL | C++ / Qt | Qt | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | memory-limited, configurable | |
Resin[14] | No | Yes | 4.026 29 Feb 2012 |
RFC 6455 | GPL & commercial | Java / C | Java | Yes | Yes | Yes | No | Yes | No | Yes | No | No | memory-limited, configurable | ||
WebSocketListener [15] | No | Yes | 2.1.3 24 Nov 2014 |
RFC 6455 | MIT | .NET / Mono | .NET / Mono | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Configurable | |
Wt (web toolkit)[16] | No | Yes | 3.2.0 30 Nov 2011 |
0,7,8,13 (17) | [? Report] | GPL & commercial | C++ / Boost Asio | C++ | Yes | Yes | No | No | No | Yes | Yes | Yes | No | memory-limited, configurable | |
XSockets.NET[17] | Yes | Yes | 5.* | RFC 6455 | Commercial | .NET | Server-Languages: Windows[.NET] / Unix/Linux[Mono]
Client-Languages: [JavaScript] / [.NET] / [Mono] |
Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | memory-limited, configurable | |
RIWA Gateway [18] | Yes | Yes | 2.01 | RFC 6455 | Commercial | Java | Java & Android & iOS & JavaScript | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No | No | memory-limited, configurable |
Notes
- 1 2 Chromium Homepage
- 1 2 Necko Homepage
- ↑ Achex WS Homepage
- ↑ Kaazing Homepage
- ↑ Lightstreamer Homepage
- ↑ MigratoryData Homepage
- ↑ noPoll homepage
- ↑ POCO C++ Libraries Documentation
- ↑ PowerWebSockets Homepage
- ↑ PowerWebSockets Autobahn|Testsuite report
- ↑ Push Technology Homepage
- 1 2 Pings and heartbeats are defined in the Diffusion protocol layer
- ↑ QtWebSockets Homepage
- ↑ Caucho Homepage
- ↑ WebSocketListener Homepage
- ↑ wt Homepage
- ↑ XSockets.NET Homepage
- ↑ / RIWA Homepage
This article is issued from Wikipedia - version of the Thursday, February 25, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.