Библиотека C или C ++ для кодирования и декодирования фреймов веб-сокетов - PullRequest
4 голосов
/ 03 марта 2012

У меня есть собственная реализация сокетов, которая поддерживает соединение с обычным tcp-клиентом. Теперь я хотел бы добавить поддержку websocket в моей серверной программе. В этом случае мне нужно будет поддерживать протоколы рукопожатия и создания сообщений, которые поддерживаются основными веб-браузерами. Я был в состоянии справиться с рукопожатием, но застрял в том, что касается обработки и отмены кадров сообщений. Существует ли какая-либо библиотека C или C ++, которая обрабатывает кодирование и декодирование фреймов сообщений веб-сокета и поддерживает основные протоколы веб-сокетов, используемые основными веб-браузерами?

Большая часть текущей реализации, которую я обнаружил (например, libwebsocket, websocketpp и т. Д.), Реализует свой собственный сервер и клиентскую библиотеку, что означает, что мне нужно использовать их реализацию сокетов. Я не хочу этого делать, потому что это потребует от меня изменения многих вещей в моей текущей программе, и это не вариант для меня. Что мне нужно, так это простая библиотека, которая обрабатывает кодирование и декодирование фреймов веб-сокета (и / или также обрабатывает часть рукопожатия, но это не обязательно).

Ответы [ 3 ]

6 голосов
/ 10 марта 2012

Автор библиотеки Websocketpp здесь.

Код обработки кадров и рукопожатия полностью отделен от кода сокета / сети. Посмотрите на папку процессоров ветки policy-refactor. Один для черновика 76 (hybi_legacy) и один для RFC6455 (hybi / hybi_header). Фреймовые процессоры читают из потока STL, который вы можете заполнить через собственный сетевой код или из какого-либо другого источника.

Пришлите мне сообщение на github, если у вас есть более конкретные вопросы.

5 голосов
/ 03 марта 2012

Библиотека websocketpp хорошо разработана, и классы обработки кадров не смешиваются с сокетными. Существует зависимость от библиотек BOOST и STL. STL не проблема, и зависимость BOOST довольно легко избежать. Просто начните с файла websocket_frame.hpp ветви политики-рефакторинга.

0 голосов
/ 08 мая 2019

Frame c-parser (без рукопожатия) вы можете найти там

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...