Node.js/Socket.io 网页实时推送更新

Node.js/Socket.io realtime webpage push updates

我正在寻找 implement/add 从 node.js 服务器到浏览器(客户端)的实时推送通知更新。

我调查了 socket.io (http://socket.io/docs/rooms-and-namespaces/)

业务需求是 - 用户将访问显示客户信息及其订单的页面。在任何给定时间将有约 10,000 名用户访问该页面(所有 10,000 名用户可能针对不同的客户,或者有时用户可能在 2 或 3 个选项卡中打开了同一页面)

当客户(我的数据存储)的订单流入 elasticsearch 时,我想向打开该客户页面的用户推送通知。

问题:

  1. socket.io 是这个案例的正确框架吗?
  2. 我的理解是否正确,我必须使用 socket.io' 房间功能来实现它? (每个房间标识符等于客户ID?)
  3. 此实现是否可扩展?node.js 服务器上的 10k 用户是否会占用大量内存?

谢谢!

  1. 是的,但你也可以考虑使用 socksJS 并编写自己的简单后端。
  2. 是的,如果您需要身份验证,这是最简单的方法。
  3. 最坏的情况是您需要集群 socket.io 服务器并使用后端适配器。 Redis 应该足够快以支持 10.000 个连接。

编辑:内存将取决于您的具体实现。

也考虑https://github.com/Automattic/socket.io/issues/1393