【发布时间】:2014-09-30 21:33:21
【问题描述】:
我正在构建一个应用程序,它在前面使用 Angular.js,在后面使用 Express 上的 Socket.IO 和 Redis。
套接字的基本用途是允许一种类型的用户将项目推送到由第二种类型的用户组消费的列表。
一个简单的例子: 学生可以将消息推送到班级列表中,并且只有该班级的老师才能看到该列表。
我正在尝试在不同时间连接的多位教师之间同步列表, 列表存储在 Redis 存储中,我想知道同步客户端的正确方法是否:
A.在每次更新时发送列表 - 无需在客户端管理同步并避免潜在的不匹配。
B.仅在连接时发送列表并对后续事件应用增量更新。
我确信过去已经解决了这个问题,因为这似乎是套接字通信的一个基本问题,但我无法找到明确的答案。
谢谢!
【问题讨论】:
-
对于您描述的单服务器规模,请选择您认为最好的支持。对于更大的规模,您可能必须使用更像 B 的东西。无论哪种方式,您所描述的听起来都很合理。
-
谢谢@dandavis!我想我会选择更面向未来的方法。
-
你可以天真地做,如果他们在正确的“池/房间/列表”中,只需将每条新消息附加到用户的列表中。为了提供这种简单性的稳健性,每次更新都发送一个总预期长度,如果特定客户端缺少某些内容,则单独为该用户重新加载整个列表(可能与客户端启动顺序大致相同)
标签: javascript websocket redis socket.io synchronization