2015-01-13 4 views
0

Я ищу для реализации/добавления обновлений push-уведомлений в реальном времени с сервера node.js в браузер (клиент).Node.js/Socket.io realtime webpage push updates

Я посмотрел в Socket.io (http://socket.io/docs/rooms-and-namespaces/)

требование бизнеса - пользователи будут посещать страницы, отображающей информацию клиента & своих заказы. В любой момент времени на страницу будет ~ 10 000 пользователей (все 10 000 могут быть для разных клиентов, или иногда пользователь может открыть одну и ту же страницу на 2 или 3 вкладках)

Когда заказы поступают в поиск elastics для клиента (мое хранилище данных), я хочу направить уведомление пользователям, открывшим страницу этого клиента.

Вопросы:

  1. ли socket.io правильной рамки для этого случая?
  2. Я правильно понимаю, что я должен использовать функциональность socket.io 'для реализации этого? (идентификатор каждой комнаты равен идентификатору клиента?)
  3. Является ли эта реализация масштабируемой и будет ли она интенсивной в памяти для пользователей 10k на сервере node.js?

Спасибо!

+0

Если вы хотите обновления в реальном времени, и вы используете узел, то да, socket.io является лучшим выбором. Вы должны знать, что вам потребуется больше, чем пару коробок для одновременного подключения 10k. – Antiga

ответ

1
  1. Да, но вы также можете рассмотреть socksJS и написать свой собственный простой back-end.
  2. Да, это самый простой способ, если вам нужна аутентификация.
  3. В худшем случае вам понадобится скопировать ваши серверы socket.io и использовать внешний адаптер. Redis должен быть достаточно быстрым для 10.000 соединений.

EDIT: память будет зависеть от конкретной реализации.

Также рассмотреть https://github.com/Automattic/socket.io/issues/1393

+0

Крис, есть ли пример, который вы знаете об этом? – user3658423

+0

Реализация какой именно? –

+0

пример обновления веб-страницы (оптимизирован) с socket.io – user3658423