Jump to content

Comparison of WebSocket implementations

From Wikipedia, the free encyclopedia

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 Yes 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 Yes 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 Commercial C++ C++, JavaScript Yes Yes Yes Yes Yes Yes Yes No No Yes ⁠⁠
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 7.4.9
20 Oct 2026
RFC 6455 Commercial, freeware Java JavaScript, Android, Java, Swift, iOS, macOS, tvOS, watchOS, visionOS, .NET Standard, C++, Python, Flash/Flex, Silverlight, J2ME Yes Yes No Yes No No Yes Yes Yes No Data driven, configurable
MigratoryData
[6]
Yes Yes 6.0.5
29 Aug 2021
RFC 6455 Commercial Java JavaScript, iOS, Android, Java, C++, .NET, PHP, Node.js, Python Yes Yes No Yes No No, No Yes Yes Yes No 263, configurable
Mongoose
[7]
Yes Yes 7.9
24 Jan 2023
RFC 6455 GPL, commercial C/C++ C/C++ Yes Yes Yes Yes Yes Yes Yes Yes No Yes 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
QtWebSockets
[12]
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
RingSocket
[13]
No Yes 1.0
13 Sep 2019
RFC 6455 MIT C C Yes Yes Yes Yes No No Yes Yes No No unlimited/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
μWebSockets[19] No Yes v0.14.0
28 Mar 2017
RFC 6455 Test report
[20]
Apache License 2.0 C++, epoll, Libuv, Boost Asio C++, JavaScript, Node.js Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes memory-limited, configurable, server focused missing client support
[21]
Boost.Beast[22] Yes Yes 94
30 July 2017
RFC 6455 Test report
[23]
Boost C++, Boost Asio C++ Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked)
libwebsockets[24] Yes Yes 2.4
16 Oct 2017
RFC 6455 + RFC 7692 Test report
[25]
LGPL2 + SLE C, libuv, libev , libevent, poll, external poll loop integration, OpenSSL, mbedTLS 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++[26] Yes Yes 0.8.2
20 Apr, 2020
RFC 6455 BSD C++11 C++11 ? ? ? ? ? ? ? ? ? ? ?
facil.io[27] Yes Yes 0.7.1
18 May 2019
RFC 6455 MIT C C Yes Yes Yes Yes Yes Yes, yes Yes Yes Yes Yes configurable client to server limits. unlimited (chunked) server to client.
oatpp-websocket[28] Yes Yes 1.3.0
19 Nov 2021
RFC 6455 Apache License 2.0 C++11, Oat++ C++11, Oat++ Yes Yes Yes Yes Yes Yes Yes No No Yes unlimited (packets streamed to user code)

Notes

[edit]