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 ++.

2

Решение

Соединение WebSocket не может быть обработано рабочим процессом HTTP-запроса / ответа. Чтобы использовать что-то вроде fastcgi ++ как с обычными HTTP-запросами, так и с WebSocket-запросами, необходимо иметь какой-то способ распознавания рукопожатия WebSocket и передачи его другому обработчику вместо обработки его как HTTP. Я не вижу очевидного сквозного режима такого рода в его документации, но я мог что-то упустить.

Если такая функция существует, WebSocket ++ можно использовать в потоковом режиме, где он отключает все свои сетевые элементы и просто обрабатывает потоки байтов, переданные из другой сетевой библиотеки.

Некоторые альтернативы:

  • WebSocket ++ поддерживает HTTP-проход. По сути это противоположно тому, что описано выше. WebSocket ++ будет использоваться в качестве сетевого уровня. Он будет обрабатывать входящие соединения WebSocket и передавать HTTP-запросы в другую подсистему.
  • WebSocket ++ и fastcgi ++ могут работать на разных портах или разных именах хостов. Это может быть сделано в той же программе или в отдельных программах. С клиентской стороны запросы направляются на соответствующий хост / порт.

Отказ от ответственности: я автор WebSocket ++

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]