Сравнение реализаций WebSocket - Comparison of WebSocket implementations
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
В WebSocket протокол реализован в разных веб-браузеры, веб-серверы, и среды выполнения и библиотеки выступая в качестве клиентов или серверов. Ниже приводится таблица различных характеристик известных WebSocket реализации.
Клиент (библиотека) | Сервер (библиотека) | Сравнение версий | Поддержка версии протокола (спецификации) | Протокол испытаний протокола | Лицензия | Реализация: язык, среда | API: язык, среда | Самостоятельный сервер | Поддержка текстовых сообщений | Поддержка двоичных сообщений | На основе сообщений API | На основе кадров API | API потокового ввода-вывода | Фреймворк управления потоком | Автоматические понги для пингов | Автоматические пинги сердцебиения | Ручные пинг-понги | Ограничение размера кадра | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Гугл Хром 15[1] | да | Нет | 15.0.874.8 12 сен 2011 | 8 (10) | Сложный | C ++, WebKit | JavaScript, HTML5 | Нет | да | да | да | Нет | Нет нет | Нет | да | Нет | Нет | ≥ 16 МБ (ограниченная память?) | |
Гугл Хром 16[1] | да | Нет | 16.0.912 13 декабря 2011 г. | 13 (17/RFC 6455 ) | Сложный | C ++, WebKit | JavaScript, HTML5 | Нет | да | да | да | Нет | Нет нет | Нет | да | Нет | Нет | ≥ 16 МБ (ограниченная память?) | |
Mozilla Fire Fox 7[2] | да | Нет | 7 бета 12 сен 2011 | 8 (10) | MPL, GPL, LGPL | C ++, Нецко | JavaScript, HTML5 | Нет | да | Нет | да | Нет | Нет нет | Нет | да | Нет | Нет | <16 МБ | |
Mozilla Fire Fox 11[2] | да | Нет | 11.0 13 марта 2012 г. | 13 (17/RFC 6455 ) | MPL, GPL, LGPL | C ++, Нецко | JavaScript, HTML5 | Нет | да | да | да | Нет | Нет нет | Нет | да | Нет | Нет | <2 ГБ (ограниченная память?) | |
Ахекс WS[3] | да | да | 2.17 17 июня 2014 г. | RFC 6455 | Коммерческий | C ++ | C ++, JavaScript | да | да | да | да | да | да | да | Нет | Нет | да | 2^16 | |
Kaazing WebSocket Gateway[4] | да | да | 5.0 декабря 2014 | RFC 6455 | APL2 (Community Edition), коммерческий (Enterprise Edition) | Ява, JMS | JavaScript, 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 6455 | LGPL 2.1 | ANSI C | ANSI 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 6455 | LGPL | C ++, Qt | Qt | да | да | да | да | да | Нет | да | да | да | да | с ограничением памяти, настраиваемый | |
RingSocket[12] | Нет | да | 1.0 13 сен 2019 | RFC 6455 | Массачусетский технологический институт | C | C | да | да | да | да | Нет | Нет | да | да | Нет | Нет | неограниченный / настраиваемый | |
Смола[13] | Нет | да | 4.026 29 февраля 2012 г. | RFC 6455 | GPL, коммерческий | Ява, 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.01 | RFC 6455 | Коммерческий | Ява | Ява, Android, iOS, JavaScript | да | да | да | да | Нет | да | Нет | да | Нет | Нет | с ограничением памяти, настраиваемый | |
µWebSockets[18] | Нет | да | v0.14.0 28 марта 2017 г. | RFC 6455 | Отчет об испытаниях[19] | Лицензия Apache 2.0 | C ++, эполл, Либув, Повысьте азио | C ++, JavaScript, Node.js | да | да | да | да | да | да | да | да | да | да | с ограничением памяти, настраиваемый |
Boost.Beast[20] | да | да | 94 30 июля 2017 г. | RFC 6455 | Отчет об испытаниях[21] | Способствовать росту | C ++, Увеличить Asio | C ++ | да | да | да | да | да | да | да | да | да | да | неограниченно (пакеты передаются в пользовательский код), permessage-deflate также неограничен (разбит на фрагменты) |
libwebsockets[22] | да | да | 2.4 16 октября 2017 г. | RFC 6455 + RFC 7692 | Отчет об испытаниях[23] | LGPL2 + SLE | C, libuv, либев, Libevent, опрос, интеграция внешнего цикла опроса, OpenSSL, mbedTLS | C, HTML5, JavaScript | да | да | да | да | да | Да да да | да | да | да | да | неограниченно (пакеты передаются в пользовательский код), permessage-deflate также неограничен (разбит на фрагменты) |
websocket ++[24] | да | да | 0.7.0 22 февраля, 2016 | RFC 6455 | BSD | C ++ 11 | C ++ 11 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | |
Facil.io[25] | да | да | 0.7.1 18 мая 2019 | RFC 6455 | Массачусетский технологический институт | C | C | да | да | да | да | да | Да да да | да | да | да | да | настраиваемый клиент для ограничений сервера. неограниченный (фрагментированный) сервер для клиента. | |
oatpp-websocket[26] | да | да | 1.2.0 27 октября 2020 г. | RFC 6455 | Лицензия Apache 2.0 | C ++ 11, Овес ++ | C ++ 11, Овес ++ | да | да | да | да | да | да | да | Нет | Нет | да | без ограничений (пакеты передаются в код пользователя) |
Примечания
- ^ а б Сайт Chromium
- ^ а б Сайт Некко
- ^ Веб-сайт Achex WS
- ^ Сайт Kaazing
- ^ Сайт Lightstreamer
- ^ Сайт MigratoryData
- ^ сайт noPoll
- ^ Документация по библиотекам POCO C ++
- ^ Веб-сайт PowerWebSockets
- ^ PowerWebSockets Autobahn | Отчет Testsuite
- ^ Сайт QtWebSockets
- ^ RingSocket (GitHub)
- ^ Сайт Caucho
- ^ Веб-сайт WebSocketListener
- ^ веб-сайт wt
- ^ Сайт XSockets.NET
- ^ Сайт RIWA
- ^ µWebSockets (GitHub)
- ^ µWebSockets Autobahn | Отчет Testsuite
- ^ Boost.Beast (GitHub)
- ^ Beast.WebSocket Autobahn | Отчет Testsuite
- ^ сайт libwebsockets.org
- ^ libwebsockets.org lws Autobahn | Отчет Testsuite
- ^ веб-сайт websocket ++
- ^ сайт facil.io
- ^ сайт oatpp.io