|
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
|
Шаблон:Rh| Google Chrome 15[1]
|
Шаблон:Yes
|
Шаблон:No
|
15.0.874.8 Шаблон:Nowrap
|
8 (10)
|
|
Шаблон:Partial
|
C++, WebKit
|
JavaScript, HTML5
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No, No
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
≥ 16 MB (memory-limited?)
|
Шаблон:Rh| Google Chrome 16[1]
|
Шаблон:Yes
|
Шаблон:No
|
16.0.912 Шаблон:Nowrap
|
13 (17/RFC 6455)
|
|
Шаблон:Partial
|
C++, WebKit
|
JavaScript, HTML5
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No, No
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
≥ 16 MB (memory-limited?)
|
Шаблон:Rh| Mozilla Firefox 7[2]
|
Шаблон:Yes
|
Шаблон:No
|
7 beta Шаблон:Nowrap
|
8 (10)
|
|
Шаблон:Free
|
C++, Necko
|
JavaScript, HTML5
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No, No
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
< 16 MB
|
Шаблон:Rh| Mozilla Firefox 11[2]
|
Шаблон:Yes
|
Шаблон:No
|
11.0 Шаблон:Nowrap
|
13 (17/RFC 6455)
|
|
Шаблон:Free
|
C++, Necko
|
JavaScript, HTML5
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No, No
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
< 2 GB (memory-limited?)
|
Шаблон:Rh| Achex WS[3]
|
Шаблон:Yes
|
Шаблон:Yes
|
2.17 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
C++
|
C++, JavaScript
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
Шаблон:Yes
|
2^16
|
Шаблон:Rh| Kaazing WebSocket Gateway[4]
|
Шаблон:Yes
|
Шаблон:Yes
|
5.0 Dec 2014
|
RFC 6455
|
|
Шаблон:Partial
|
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
|
Шаблон:Rh| Lightstreamer[5]
|
Шаблон:Yes
|
Шаблон:Yes
|
7.4.1 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Partial
|
Java
|
JavaScript, Android, Java, Swift, iOS, macOS, tvOS, watchOS, .NET Standard, Python, Flash/Flex, Silverlight, J2ME
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Data driven, configurable
|
Шаблон:Rh| MigratoryData[6]
|
Шаблон:Yes
|
Шаблон:Yes
|
6.0.5 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Nonfree
|
Java
|
JavaScript, iOS, Android, Java, C++, .NET, PHP, Node.js, Python
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No, No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
263, configurable
|
Шаблон:Rh| Mongoose[7]
|
Шаблон:Yes
|
Шаблон:Yes
|
7.9 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Partial
|
C/C++
|
C/C++
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
263, configurable
|
Шаблон:Rh| noPoll[8]
|
Шаблон:Yes
|
Шаблон:Yes
|
0.3.2 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
ANSI C
|
ANSI C
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
memory-limited, configurable
|
Шаблон:Rh| POCO C++ Libraries[9]
|
Шаблон:Yes
|
Шаблон:Yes
|
1.4.6 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
C++, POCO C++ Libraries
|
C++
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
Шаблон:No
|
Шаблон:Yes
|
memory-limited, configurable
|
Шаблон:Rh| PowerWebSockets[10]
|
Шаблон:Yes
|
Шаблон:Yes
|
15.176.5188 Шаблон:Nowrap
|
RFC 6455
|
Test report[11]
|
Шаблон:Nonfree
|
.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
|
Шаблон:Rh| QtWebSockets[12]
|
Шаблон:Yes
|
Шаблон:Yes
|
1.0 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
C++, Qt
|
Qt
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
memory-limited, configurable
|
Шаблон:Rh| RingSocket[13]
|
Шаблон:No
|
Шаблон:Yes
|
1.0 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
C
|
C
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
unlimited/configurable
|
Шаблон:Rh| Resin[14]
|
Шаблон:No
|
Шаблон:Yes
|
4.026 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Partial
|
Java, C
|
Java
|
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
memory-limited, configurable
|
Шаблон:Rh| WebSocketListener[15]
|
Шаблон:No
|
Шаблон:Yes
|
2.1.3 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
.NET, Mono
|
.NET, Mono
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Configurable
|
Шаблон:Rh| Wt[16]
|
Шаблон:No
|
Шаблон:Yes
|
3.2.0 Шаблон:Nowrap
|
0,7,8,13 (17)
|
[? Report]
|
Шаблон:Partial
|
C++, Boost Asio
|
C++
|
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
memory-limited, configurable
|
Шаблон:Rh| XSockets.NET[17]
|
Шаблон:Yes
|
Шаблон:Yes
|
5.*
|
RFC 6455
|
|
Шаблон:Nonfree
|
.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
|
Шаблон:Rh| RIWA Gateway[18]
|
Шаблон:Yes
|
Шаблон:Yes
|
2.01
|
RFC 6455
|
|
Шаблон:Nonfree
|
Java
|
Java, Android, iOS, JavaScript
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
memory-limited, configurable
|
Шаблон:Rh| µWebSockets[19]
|
Шаблон:No
|
Шаблон:Yes
|
v0.14.0 Шаблон:Nowrap
|
RFC 6455
|
Test report[20]
|
Шаблон:Free
|
C++, epoll, Libuv, Boost Asio
|
C++, JavaScript, Node.js
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
memory-limited, configurable
|
Шаблон:Rh| Boost.Beast[21]
|
Шаблон:Yes
|
Шаблон:Yes
|
94 Шаблон:Nowrap
|
RFC 6455
|
Test report[22]
|
Шаблон:Free
|
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)
|
Шаблон:Rh| libwebsockets[23]
|
Шаблон:Yes
|
Шаблон:Yes
|
2.4 Шаблон:Nowrap
|
RFC 6455 + RFC 7692
|
Test report[24]
|
Шаблон:Free
|
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)
|
Шаблон:Rh| websocket++[25]
|
Шаблон:Yes
|
Шаблон:Yes
|
0.8.2 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
C++11
|
C++11
|
?
|
?
|
?
|
?
|
?
|
?
|
?
|
?
|
?
|
?
|
?
|
Шаблон:Rh| facil.io[26]
|
Шаблон:Yes
|
Шаблон:Yes
|
0.7.1 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
C
|
C
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes, yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
configurable client to server limits. unlimited (chunked) server to client.
|
Шаблон:Rh| oatpp-websocket[27]
|
Шаблон:Yes
|
Шаблон:Yes
|
1.3.0 Шаблон:Nowrap
|
RFC 6455
|
|
Шаблон:Free
|
C++11, Oat++
|
C++11, Oat++
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:Yes
|
Шаблон:No
|
Шаблон:No
|
Шаблон:Yes
|
unlimited (packets streamed to user code)
|