Я хочу использовать socket.io, но я буду запускать несколько экземпляров своего приложения, так что тут все становится интереснее.
Мне нужно запустить несколько экземпляров на разных портах. Здесь нет проблем.
Я решил не использовать собственный кластер Node, я буду использовать Nginx для балансировки нагрузки (поэтому я создаю несколько экземпляров приложения). Nginx поддерживает веб-сокеты, так что с этим тоже разобрались.
Учитывая, что будет несколько экземпляров, не все из них не смогут общаться друг с другом напрямую (пользователь A подключается к экземпляру X, если пользователь B подключен к экземпляру Y, они не могут общаться, поскольку серверы независимы друг от друга. ), поэтому мне нужно использовать механизм публикации/подписки Redis в качестве оболочки, чтобы имитировать функции отправки и вещания socketio. Таким образом, даже если у меня есть несколько экземпляров приложения или я запускаю его на разных серверах, все смогут общаться друг с другом, если они подключены к одному и тому же серверу Redis. Для этого мне понадобятся модули socket.io-redis и socket.io-emitter.
Я правильно понял, что-то не так с этим подходом?