我正在构建一个允许团队协作的web应用程序。也就是说,团队中的用户将能够编辑共享数据,并且他们的编辑应该推送给其他连接的团队成员。
是套接字。IO房间是实现这一目标的合理方法吗?
。(粗略地说):
- 所有连接的团队成员将加入同一个房间(在第一个团队成员连接时动态创建)。
- 系统收到的任何编辑服务器将被广播到房间(除了被持久化,等等)。
- 在客户端,收到的任何编辑都将用于更新在浏览器中相应地显示共享数据。
显然,它需要以某种方式处理对同一数据的同时更新。
这看起来像一个合理的方法吗?
我可能需要考虑一些更强大的东西,比如在编辑会话期间有一个Redis数据库来保存共享数据(它定期被"刷新"到持久化数据库)?
您所需要的只是Socket。IO(使用RedisStore)和Express.js。套接字。您可以设置房间,也可以将每个房间的访问限制为只有授权的用户。使用Redis,你可以让你的应用扩展到进程之外。
有用的链接供你阅读:
处理插座。IO、Express和sessions
扩展插座。IO
如何重用redis连接在socket.io?
套接字。IO聊天与私人房间
如何使用node.js + redis处理用户和套接字对
Node.js,多线程和Socket。IO