Comparison of WebSocket implementations

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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
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.2
10 May 2016
RFC 6455 Commercial, freeware Java JavaScript, Flash/Flex, Silverlight, iOS, OS X, tvOS, 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 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[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
Beast C++ Library[19] Yes Yes 1.0.0-b5
3 Jun 2016
RFC 6455 Test report[20] Boost C++, Boost C++ Yes Yes Yes Yes Yes Yes Yes Yes No Yes memory-limited, configurable

Notes[edit]