Websockets с PHP и Symfony-архитектура сети и сервера
у нас есть веб-приложение, которое в настоящее время использует опросы для обработки непрерывных обновлений.
при переключении на длинный опрос может быть небольшая полоса к проблеме, мы хотели реализовать решение Websockets, которое будет прочным и масштабируемым.
мой вопрос: какая архитектура потребуется для этого?
я сам провел некоторые исследования и обнаружил, что типичная настройка для корпоративного приложения что-то вроде этого:--24-->
поток выполнения соединения тогда был бы чем-то вроде этого:
- начальное квитирование
- клиент
HTTPзапросServerвместе с JS запросить соединение Websocket -
Serverотвечает:HeaderсодержитUpgradeдирективы и переключает протоколы для этого клиента - сервер Websocket устанавливает
Websocketсвязи с клиент
- клиент
- клиент отправляет
POST/PUT/ etc.-
Webserver(Apache/Nginx) извлекает результат из запроса -
Webserverотправляет результатMQ, где он добавляется в очередь -
MessageотправленоWebsocketсервер отMQ -
Messageотправляется обратно клиенту
-
является ли этот подход правильным? Я что-то пропустил? Я что-то понимаю? неправильно?
2 ответов
попробуйте взглянуть на это:socketo.я ...
вроде дает вам идею. Из того, что я вижу, это довольно похоже на то, что вы представляли на диаграмме архитектуры, которую вы опубликовали.
возможно, также стоит посмотреть на это ответ на вопрос Stackoverflow.
вы пробовали гос. WebSocketBundle ? Я использовал его на производственном сайте для обработки чата, и вместе с stunnel он работает безупречно по SSL.