Попадание на серверы для обновления не является хорошим вариантом. Использование HTTP, AJAX-опроса или AJAX-длинного опроса существенно увеличивает нагрузку на сеть из-за большого количества циклов запроса / ответа. Вы должны пойти с веб-сокетами. С помощью WebSockets можно установить полный дуплекс и постоянное соединение между клиентом и сервером. Это означает, что в отличие от запроса и ответа, соединение остается открытым до тех пор, пока приложение работает, и, поскольку оно является полнодуплексным, возможна двусторонняя одновременная связь, т.е. теперь сервер способен инициировать связь и «проталкивать» некоторые данные для клиента.
Но WebSockets не реализует Pub / Sub на уровне протокола. Вам понадобится реализовать его поверх протокола WebSockets, что довольно утомительно.
Вы можете использовать решение PaaS, такое как Ably , которое абстрагирует эту реализацию и позволяет вам использовать Pub / Саб как функция из коробки.
По поводу масштабируемости, веб-сокеты работают очень хорошо Кроме того, Ably разработан для практического и промышленного использования, поэтому он может легко обрабатывать ваши данные и проблемы масштабируемости. Возможно, вы захотите прочитать их документы о масштабируемости и реализации.
Надеюсь, это было полезно для вас.