Сравнение реализаций WebSocket - Comparison of WebSocket implementations

В WebSocket протокол реализован в разных веб-браузеры, веб-серверы, и среды выполнения и библиотеки выступая в качестве клиентов или серверов. Ниже приводится таблица различных характеристик известных WebSocket реализации.

Клиент (библиотека)Сервер (библиотека)Сравнение версийПоддержка версии протокола (спецификации)Протокол испытаний протоколаЛицензияРеализация: язык, средаAPI: язык, средаСамостоятельный серверПоддержка текстовых сообщенийПоддержка двоичных сообщенийНа основе сообщений APIНа основе кадров APIAPI потокового ввода-выводаФреймворк управления потокомАвтоматические понги для пинговАвтоматические пинги сердцебиенияРучные пинг-понгиОграничение размера кадра
Гугл Хром 15[1]даНет15.0.874.8
12 сен 2011
8 (10)СложныйC ++, WebKitJavaScript, HTML5НетдададаНетНет нетНетдаНетНет≥ 16 МБ
(ограниченная память?)
Гугл Хром 16[1]даНет16.0.912
13 декабря 2011 г.
13 (17/RFC 6455 )СложныйC ++, WebKitJavaScript, HTML5НетдададаНетНет нетНетдаНетНет≥ 16 МБ
(ограниченная память?)
Mozilla Fire Fox 7[2]даНет7 бета
12 сен 2011
8 (10)MPL, GPL, LGPLC ++, НецкоJavaScript, HTML5НетдаНетдаНетНет нетНетдаНетНет<16 МБ
Mozilla Fire Fox 11[2]даНет11.0
13 марта 2012 г.
13 (17/RFC 6455 )MPL, GPL, LGPLC ++, НецкоJavaScript, HTML5НетдададаНетНет нетНетдаНетНет<2 ГБ
(ограниченная память?)
Ахекс WS[3]дада2.17
17 июня 2014 г.
RFC 6455КоммерческийC ++C ++, JavaScriptдададададададаНетНетда2^16
Kaazing WebSocket Gateway[4]дада5.0 декабря 2014RFC 6455APL2 (Community Edition), коммерческий (Enterprise Edition)Ява, JMSJavaScript, Flash / Flex, Silverlight, Цель-C & iOS, Ява, Ява & Android, .СЕТЬ, XamarinдадададаНетдадададаНетс ограничением памяти, настраиваемый
Lightstreamer[5]дада7.1.2
25 сен 2020
RFC 6455Коммерческий, бесплатное ПОЯваJavaScript, Flash / Flex, Silverlight, iOS, macOS, tvOS, watchOS, Ява, J2ME, Android, .NET StandardдадаНетдаНетНетдададаНетНа основе данных, настраиваемый
Миграционные данные[6]дада5.0.28
23 августа 2019
RFC 6455КоммерческийЯваJavaScript, iOS, Android, Ява, C ++, .СЕТЬ, PHP, Node.js, Python, РубиндадаНетдаНетНет нетдададаНет263, настраиваемый
noPoll[7]дада0.3.2
28 августа 2015 г.
RFC 6455LGPL 2.1ANSI CANSI CдадададададаНетдададас ограничением памяти, настраиваемый
Библиотеки POCO C ++[8]дада1.4.6
23 сен 2014
RFC 6455Способствовать ростуC ++, Библиотеки POCO C ++C ++дададаНетдадаНетНетНетдас ограничением памяти, настраиваемый
PowerWebСокеты[9]дада15.176.5188
26 июн 2015
RFC 6455Отчет об испытаниях[10]Коммерческий.СЕТЬ.NET Framework, .NET Compact Framework, Xamarin. iOS, Xamarin.Android, телефон с операционной системой Виндоус, Silverlight, МононуклеоздадададаНетдададададас ограничением памяти, настраиваемый
QtWebSockets[11]дада1.0
12 ноя 2013
RFC 6455LGPLC ++, QtQtдададададаНетдадададас ограничением памяти, настраиваемый
RingSocket[12]Нетда1.0
13 сен 2019
RFC 6455Массачусетский технологический институтCCдадададаНетНетдадаНетНетнеограниченный / настраиваемый
Смола[13]Нетда4.026
29 февраля 2012 г.
RFC 6455GPL, коммерческийЯва, CЯвадададаНетдаНетдаНетНетс ограничением памяти, настраиваемый
WebSocketListener[14]Нетда2.1.3
24 ноя 2014
RFC 6455Массачусетский технологический институт.СЕТЬ, Мононуклеоз.СЕТЬ, МононуклеоздадададаНетдадададаНетНастраиваемый
Wt[15]Нетда3.2.0
30 ноя 2011
0,7,8,13 (17)[? Отчет]GPL, коммерческийC ++, Повысьте азиоC ++дадаНетНетНетдададаНетс ограничением памяти, настраиваемый
XSockets.NET[16]дада5.*RFC 6455Коммерческий.СЕТЬСерверные языки: Windows (.СЕТЬ), Unix -Linux (Мононуклеоз)

Клиентские языки: JavaScript, .СЕТЬ, Мононуклеоз

дадададаНетдададададас ограничением памяти, настраиваемый
RIWA шлюз[17]дада2.01RFC 6455КоммерческийЯваЯва, Android, iOS, JavaScriptдадададаНетдаНетдаНетНетс ограничением памяти, настраиваемый
µWebSockets[18]Нетдаv0.14.0
28 марта 2017 г.
RFC 6455Отчет об испытаниях[19]Лицензия Apache 2.0C ++, эполл, Либув, Повысьте азиоC ++, JavaScript, Node.jsдадададададададададас ограничением памяти, настраиваемый
Boost.Beast[20]дада94
30 июля 2017 г.
RFC 6455Отчет об испытаниях[21]Способствовать ростуC ++, Увеличить AsioC ++дадададададададададанеограниченно (пакеты передаются в пользовательский код), permessage-deflate также неограничен (разбит на фрагменты)
libwebsockets[22]дада2.4
16 октября 2017 г.
RFC 6455 + RFC 7692Отчет об испытаниях[23]LGPL2 + SLEC, libuv, либев, Libevent, опрос, интеграция внешнего цикла опроса, OpenSSL, mbedTLSC, HTML5, JavaScriptдададададаДа да дададададанеограниченно (пакеты передаются в пользовательский код), permessage-deflate также неограничен (разбит на фрагменты)
websocket ++[24]дада0.7.0
22 февраля, 2016
RFC 6455BSDC ++ 11C ++ 11???????????
Facil.io[25]дада0.7.1
18 мая 2019
RFC 6455Массачусетский технологический институтCCдададададаДа да дададададанастраиваемый клиент для ограничений сервера. неограниченный (фрагментированный) сервер для клиента.
oatpp-websocket[26]дада1.2.0
27 октября 2020 г.
RFC 6455Лицензия Apache 2.0C ++ 11, Овес ++C ++ 11, Овес ++дададададададаНетНетдабез ограничений (пакеты передаются в код пользователя)

Примечания