Сравнение реализаций WebSocket
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Протокол WebSocket реализован в различных веб-браузерах , веб-серверах , средах выполнения и библиотеках, выступающих в качестве клиентов или серверов. Ниже приведена таблица различных функций известных реализаций WebSocket .
Клиент (библиотека) | Сервер (библиотека) | Версия по сравнению | Поддержка версии протокола (спецификации) | Отчет об испытаниях протокола | Лицензия | Реализация: язык, окружающая среда | API: язык, среда | Самостоятельный сервер | Поддержка текстовых сообщений | Поддержка двоичных сообщений | API на основе сообщений | API на основе фреймов | API потокового ввода-вывода | Структура управления потоком | Автоматические понги для пингов | Автоматические пинги пульса | Ручной пинг-понг | Ограничение размера кадра | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Гугл Хром 15 [1] | Да | Нет | 15.0.874.8 12 сентября 2011 г. |
8 (10) | Сложный | С++ , Вебкит | JavaScript , HTML5 | Нет | Да | Да | Да | Нет | Нет нет | Нет | Да | Нет | Нет | ≥ 16 МБ (ограничена память?) | |
Гугл Хром 16 [1] | Да | Нет | 16.0.912 13 декабря 2011 г. |
13 (17/RFC 6455) | Сложный | С++ , Вебкит | JavaScript , HTML5 | Нет | Да | Да | Да | Нет | Нет нет | Нет | Да | Нет | Нет | ≥ 16 МБ (ограничена память?) | |
Мозилла Фаерфокс 7 [2] | Да | Нет | 7 бета 12 сентября 2011 г. |
8 (10) | MPL , GPL , LGPL | С++ , Некко | JavaScript , HTML5 | Нет | Да | Нет | Да | Нет | Нет нет | Нет | Да | Нет | Нет | < 16 МБ | |
Мозилла Фаерфокс 11 [2] | Да | Нет | 11.0 13 марта 2012 г. |
13 (17/RFC 6455) | MPL , GPL , LGPL | С++ , Некко | JavaScript , HTML5 | Нет | Да | Да | Да | Нет | Нет нет | Нет | Да | Нет | Нет | < 2 ГБ (ограничена память?) | |
Ахекс WS [3] | Да | Да | 2.17 17 июня 2014 г. |
RFC 6455 | Коммерческий | С++ | С++ , JavaScript | Да | Да | Да | Да | Да | Да | Да | Нет | Нет | Да | 2^16 | |
Kaazing WebSocket-шлюз [4] | Да | Да | 5.0 декабрь 2014 г. | RFC 6455 | APL2 (Community Edition), коммерческая версия (Enterprise Edition) | Ява , JMS | JavaScript , Flash/Flex , Silverlight , Objective-C и iOS , Java , Java и Android , .NET , Xamarin | Да | Да | Да | Да | Нет | Да | Да | Да | Да | Нет | ограниченный объем памяти, настраиваемый | |
Светостример [5] | Да | Да | 7.4.4 9 июля 2024 г. |
RFC 6455 | Коммерческое , бесплатное ПО | Ява | JavaScript , Android , Java , Swift , iOS , macOS , tvOS , watchOS , VisionOS , .NET Standard , Python , Flash/Flex , Silverlight , J2ME | Да | Да | Нет | Да | Нет | Нет | Да | Да | Да | Нет | Управляется данными, настраивается | |
Миграционные данные [6] | Да | Да | 6.0.5 29 августа 2021 г. |
RFC 6455 | Коммерческий | Ява | JavaScript , iOS , Android , Java , C++ , .NET , PHP , Node.js , Python | Да | Да | Нет | Да | Нет | Нет нет | Да | Да | Да | Нет | 2 63 , настраиваемый | |
Мангуста [7] | Да | Да | 7.9 24 января 2023 г. |
RFC 6455 | GPL , коммерческая | С/С++ | С/С++ | Да | Да | Да | Да | Да | Да | Да | Да | Нет | Да | 2 63 , настраиваемый | |
после опроса [8] | Да | Да | 0.3.2 28 августа 2015 г. |
RFC 6455 | LGPL 2.1 | АНСИ С | АНСИ С | Да | Да | Да | Да | Да | Да | Нет | Да | Да | Да | ограниченный объем памяти, настраиваемый | |
МАЛЕНЬКИЕ библиотеки C++ [9] | Да | Да | 1.4.6 23 сентября 2014 г. |
RFC 6455 | Способствовать росту | C++ , Библиотеки POCO C++ | С++ | Да | Да | Да | Нет | Да | Да | Нет | Нет | Нет | Да | ограниченный объем памяти, настраиваемый | |
PowerWebSockets [10] | Да | Да | 15.176.5188 26 июня 2015 г. |
RFC 6455 | Отчет об испытаниях [11] | Коммерческий | .СЕТЬ | .NET Framework , .NET Compact Framework , Xamarin . iOS , Хамарин . Android , Windows Phone , Silverlight , моно | Да | Да | Да | Да | Нет | Да | Да | Да | Да | Да | ограниченный объем памяти, настраиваемый |
QtWebSockets [12] | Да | Да | 1.0 12 ноября 2013 г. |
RFC 6455 | LGPL | С++ , Qt | Qt | Да | Да | Да | Да | Да | Нет | Да | Да | Да | Да | ограниченный объем памяти, настраиваемый | |
КольцоSocket [13] | Нет | Да | 1.0 13 сен 2019 г. |
RFC 6455 | С | С | С | Да | Да | Да | Да | Нет | Нет | Да | Да | Нет | Нет | неограниченный/настраиваемый | |
Смола [14] | Нет | Да | 4.026 29 февраля 2012 г. |
RFC 6455 | GPL , коммерческая | Ява , С | Ява | Да | Да | Да | Нет | Да | Нет | Да | Нет | Нет | ограниченный объем памяти, настраиваемый | ||
Вебсокетпрослушиватель [15] | Нет | Да | 2.1.3 24 ноября 2014 г. |
RFC 6455 | С | .NET , моно | .NET , моно | Да | Да | Да | Да | Нет | Да | Да | Да | Да | Нет | Настраиваемый | |
вес [16] | Нет | Да | 3.2.0 30 ноября 2011 г. |
0,7,8,13 (17) | [? Отчет] | GPL , коммерческая | С++ , Boost Asio | С++ | Да | Да | Нет | Нет | Нет | Да | Да | Да | Нет | ограниченный объем памяти, настраиваемый | |
XSockets.NET [17] | Да | Да | 5.* | RFC 6455 | Коммерческий | .СЕТЬ | Серверные языки: Windows (.NET), Unix — Linux (Mono) Клиентские языки: JavaScript , .NET , Mono. |
Да | Да | Да | Да | Нет | Да | Да | Да | Да | Да | ограниченный объем памяти, настраиваемый | |
RIWA шлюз [18] | Да | Да | 2.01 | RFC 6455 | Коммерческий | Ява | Java , Android , iOS , JavaScript | Да | Да | Да | Да | Нет | Да | Нет | Да | Нет | Нет | ограниченный объем памяти, настраиваемый | |
μWebSockets [19] | Нет | Да | v0.14.0 28 марта 2017 г. |
RFC 6455 | Отчет об испытаниях [20] | Лицензия Апач 2.0 | C++ , epoll , Libuv , Boost Asio | C++ , JavaScript , Node.js | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | ограниченный объем памяти, настраиваемый |
Boost.Beast [21] | Да | Да | 94 30 июля 2017 г. |
RFC 6455 | Отчет об испытаниях [22] | Способствовать росту | С++ , Boost Asio | С++ | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | неограниченно (пакеты передаются в пользовательский код), permessage-deflate также неограниченно (фрагментировано) |
libwebsockets [23] | Да | Да | 2.4 16 октября 2017 г. |
RFC 6455 + RFC 7692 | Отчет об испытаниях [24] | LGPL2 + СЛЕ | C , libuv , libev , libevent , poll , интеграция внешнего цикла опроса , OpenSSL , mbedTLS | С , HTML5 , JavaScript | Да | Да | Да | Да | Да | Да, да | Да | Да | Да | Да | неограниченно (пакеты передаются в пользовательский код), permessage-deflate также неограниченно (фрагментировано) |
вебсокет++ [25] | Да | Да | 0.8.2 20 апреля 2020 г. |
RFC 6455 | БСД | С++11 | С++11 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | |
facil.io [26] | Да | Да | 0.7.1 18 мая 2019 г. |
RFC 6455 | С | С | С | Да | Да | Да | Да | Да | Да, да | Да | Да | Да | Да | настраиваемый клиент в соответствии с ограничениями сервера. неограниченный (частичный) сервер к клиенту. | |
веб-сокет овпп [27] | Да | Да | 1.3.0 19 ноября 2021 г. |
RFC 6455 | Лицензия Апач 2.0 | С++11 , Овес++ | С++11 , Овес++ | Да | Да | Да | Да | Да | Да | Да | Нет | Нет | Да | неограниченно (пакеты передаются в код пользователя) |
Примечания
[ редактировать ]- ^ Jump up to: а б Веб-сайт Хрома
- ^ Jump up to: а б сайт Некко
- ^ Веб-сайт Achex WS
- ^ Веб-сайт Каазинга
- ^ Веб-сайт Lightstreamer
- ^ Веб-сайт MigratoryData
- ^ Веб-сайт библиотеки Мангуста
- ^ сайт noPoll
- ^ Документация по библиотекам POCO C++
- ^ Веб-сайт PowerWebSockets
- ^ PowerWebSockets Autobahn | Отчет Testsuite
- ^ Веб-сайт QtWebSockets
- ^ RingSocket (GitHub)
- ^ Веб-сайт резины
- ^ Веб-сайт WebSocketListener
- ^ веб-сайт wt
- ^ Веб-сайт XSockets.NET
- ^ Веб-сайт RIWA
- ^ μWebSockets (GitHub)
- ^ μWebSockets Autobahn | Отчет Testsuite
- ^ Boost.Beast (GitHub)
- ^ Beast.WebSocket Autobahn|Отчет Testsuite
- ^ сайт libwebsockets.org
- ^ libwebsockets.org lws Autobahn | Отчет Testsuite
- ^ веб-сайт вебсокета ++
- ^ сайт facil.io
- ^ сайт oatpp.io