Комментарии 11
> А можно обойтись без него?
Да можно, например взять http://reactphp.org/
А можно воспользоваться специализированным решением, например, https://github.com/postHawk/ и не нагружать nginx
А можно вообще заточить все под свои нужды, используя https://github.com/warmcat/libwebsockets будет быстрее и могу реализовать даже без Редиса, но надо ли оно, если трудозатраты на разработку lua скрипта ушло 1-2 дня.

А теперь, подумай, как будешь не нагружая nginx проксировать на postHawk? Использовать другие порты, как -то не кошерно, и поднимать еще один сервер и пулить на поддомен, тоже как -то не вариант.
Очень просто сервер запускается на указанном порту указанного домена и слушает его. Не вижу проблемы открыть один порт, на котором будет висеть демон.
Конечно, проблемы нет открыть еще один порт, но как бы правильно, что все что связано с HTTP было на 80 порту.
Как говорит википедия
WebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.

Я согласен, что handshake идёт по http, но на этом он (http) и заканчивается. Поэтому не вижу ничего криминального слушать другой порт. А вообще дело ваше.
Спасибо, как раз скоро придётся решать такую задачу. У меня вопрос есть. Сколько клиентов обслуживает и на какой машине это работает?
Честно говоря, у меня ответы от внешнего сервиса приходят не так быстро, по этому одновременно находится где-то 100-200 клиентов, специально не считал.

машина: 2 процессора Xeon E5-2620v3 2.0 ГГц 12 ядер: nginx + php + redis + MySQL

Я подумаю, как лучше провести нагрузочное тестирование, и сообщу результаты. Тут свои проблемы: подакшен нагружать нельзя, а на площадке разработчика — получатся другие данные. Очевидно, цель узнать, будет ли держать более 10К? Для этого сильный процессор не нужен… Попробую запустить туеву кучу клиентов…

mosquitto прекрасно поддерживает mqtt через вебсокеты. что ещё надо?
Ответ немного не в тему,
в статье прямым текстом сказано, не хотелось бы вводить новую сущность, а редис уже активно используется, да и потом, mosquitto опять через nginx проксировать надо.

Если бы можно было заменить редис, то я бы поменял его на Tarantool, и поженил бы Tarantool с web-сокетами.
Tarantool и кеширование данных, и сервер очередей, и прямое общение с nginx и поиск по гео-индексу и все в одном флаконе
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.