websocket++ с использованием примера сессии fastcgi++
Я новичок в C++ и почти ничего не знаю о веб-протоколах или веб-сокетах, так что это может показаться смешным.
Я делаю веб-сайты, которые на 100% Ajax и хочу включить веб-сокеты. Fastcgi++ - это все, на что я мог надеяться для требований ajax, но у него нет веб-сокетов, и я выбрал websocket ++ вместо libwebsockets, так как websocket ++ более или менее прост #include
, поэтому я предположил, что я мог бы включить его в fastcgi ++.
Я думаю, что я разобрался с fastcgi ++, и похоже, что большинство действий происходит в Fastcgipp::Request
затем Fastcgipp::Http::Sessions
для данных сессий http://www.nongnu.org/fastcgipp/doc/2.1/a00005.html; Тем не менее, я думаю, что я должен сделать то же самое с Websocket ++ server::handler
для обработки веб-сокета https://github.com/zaphoyd/websocketpp/wiki/Creating-Applications-using-WebSocket--, и теперь я потерян в море.
Введите мою полную неопытность с C++: я думаю, что я должен использовать виртуальное наследование, но я понятия не имею. Кроме того, если бы я мог даже должным образом "подклассить" оба, как я должен удостовериться, что они не пересекают друг друга?
Пожалуйста, покажите мне основной пример того, как websocket ++ может использовать управление сессиями fastcgi ++.
1 ответ
Соединение WebSocket не может быть обработано рабочим процессом HTTP-запроса / ответа. Чтобы использовать что-то вроде fastcgi ++ как с обычными HTTP-запросами, так и с WebSocket-запросами, необходимо иметь какой-то способ распознавания рукопожатия WebSocket и передачи его другому обработчику вместо обработки его как HTTP. Я не вижу очевидного сквозного режима такого рода в его документации, но я мог что-то упустить.
Если такая функция существует, WebSocket++ можно использовать в потоковом режиме, где он отключает все свои сетевые элементы и просто обрабатывает потоки байтов, переданные из другой сетевой библиотеки.
Некоторые альтернативы:
- WebSocket ++ поддерживает HTTP-проход. По сути это противоположно тому, что описано выше. WebSocket++ будет использоваться в качестве сетевого уровня. Он будет обрабатывать входящие соединения WebSocket и передавать HTTP-запросы в другую подсистему.
- WebSocket ++ и fastcgi ++ могут работать на разных портах или разных именах хостов. Это может быть сделано в той же программе или в отдельных программах. С клиентской стороны запросы направляются на соответствующий хост / порт.
Отказ от ответственности: я автор WebSocket ++