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 | 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] | 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 | BSD new | C++ | C++, JavaScript | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | 2^16 | |
Socket.IO[4] | Yes | Yes | MIT | JavaScript | JavaScript | ||||||||||||||
Kaazing WebSocket Gateway[5] | 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[6] | Yes | Yes | 6.1.0 23 Jan 2017 |
RFC 6455 | Commercial, freeware | Java | JavaScript, Flash/Flex, Silverlight, iOS, macOS, tvOS, Java, J2ME, Android, .NET PCL | Yes | Yes | No | Yes | No | No | Yes | Yes | Yes | No | Data driven, configurable | |
MigratoryData[7] | 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[8] | 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[9] | Yes | Yes | 1.4.6 23 Sep 2014 |
RFC 6455 | Boost | C++, POCO C++ Libraries | C++ | Yes | Yes | Yes | No | Yes | Yes | No | No | No | Yes | memory-limited, configurable | |
PowerWebSockets[10] | Yes | Yes | 15.176.5188 26 Jun 2015 |
RFC 6455 | Test report[11] | 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[12] | 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[13] | Yes[13] | No | memory-limited, configurable | |
QtWebSockets[14] | 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[15] | 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[16] | 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[17] | 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[18] | 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[19] | 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 | |
Boost.Beast[20] | Yes | Yes | 94 30 July 2017 |
RFC 6455 | Test report[21] | Boost | C++, Boost | C++ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked) |
libwebsockets[22] | Yes | Yes | 2.1-pre3 6 Sep 2016 |
RFC 6455 + RFC 7692 | Test report[23] | LGPL2 + SLE | C | C, HTML5, JavaScript | Yes | Yes | Yes | Yes | Yes | Yes, yes | Yes | Yes | Yes | Yes | unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked) |
websocket++[24] | Yes | Yes | 0.7.0 22 Feb, 2016 |
RFC 6455 | BSD | C++11 | C++11 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | |
facil.io[25] | No | Yes | 0.4.2 2 Jun 2017 |
RFC 6455 | MIT | C | C | Yes | Yes | Yes | Yes | Yes | Yes, yes | Yes | Yes | Yes | Yes | configurable client to server limits. unlimited (chucked) server to client. |
Notes
- 1 2 Chromium website
- 1 2 Necko website
- ↑ Achex WS website
- ↑ Socket.IO website
- ↑ Kaazing website
- ↑ Lightstreamer website
- ↑ MigratoryData website
- ↑ noPoll website
- ↑ POCO C++ Libraries documentation
- ↑ PowerWebSockets website
- ↑ PowerWebSockets Autobahn|Testsuite report
- ↑ Push Technology website
- 1 2 Pings and heartbeats are defined in the Diffusion protocol layer
- ↑ QtWebSockets website
- ↑ Caucho website
- ↑ WebSocketListener website
- ↑ wt website
- ↑ XSockets.NET website
- ↑ RIWA website
- ↑ Boost.Beast (GitHub)
- ↑ Beast.WebSocket Autobahn|Testsuite report
- ↑ libwebsockets.org website
- ↑ libwebsockets.org lws Autobahn|Testsuite report
- ↑ websocket++ website
- ↑ facil.io website
This article is issued from
Wikipedia.
The text is licensed under Creative Commons - Attribution - Sharealike.
Additional terms may apply for the media files.