Websockets с PHP и Symfony-архитектура сети и сервера

у нас есть веб-приложение, которое в настоящее время использует опросы для обработки непрерывных обновлений.

при переключении на длинный опрос может быть небольшая полоса к проблеме, мы хотели реализовать решение Websockets, которое будет прочным и масштабируемым.

мой вопрос: какая архитектура потребуется для этого?

я сам провел некоторые исследования и обнаружил, что типичная настройка для корпоративного приложения что-то вроде этого:--24-->websocket flow

поток выполнения соединения тогда был бы чем-то вроде этого:

  1. начальное квитирование
    • клиент HTTP запрос Server вместе с JS запросить соединение Websocket
    • Server отвечает:Header содержит Upgrade директивы и переключает протоколы для этого клиента
    • сервер Websocket устанавливает Websocket связи с клиент
  2. клиент отправляет POST/PUT / etc.
    • Webserver (Apache/Nginx) извлекает результат из запроса
    • Webserver отправляет результат MQ, где он добавляется в очередь
    • Message отправлено Websocket сервер от MQ
    • Message отправляется обратно клиенту

является ли этот подход правильным? Я что-то пропустил? Я что-то понимаю? неправильно?

2 ответов


попробуйте взглянуть на это:socketo.я ...

вроде дает вам идею. Из того, что я вижу, это довольно похоже на то, что вы представляли на диаграмме архитектуры, которую вы опубликовали.

возможно, также стоит посмотреть на это ответ на вопрос Stackoverflow.


вы пробовали гос. WebSocketBundle ? Я использовал его на производственном сайте для обработки чата, и вместе с stunnel он работает безупречно по SSL.