构build一个Web应用程序来支持使用Socket.io进行团队协作

我正在构build一个允许团队协作的Web应用程序。 也就是说,团队中的用户将能够编辑共享数据,并将其编辑推送给其他连接的团队成员。

Socket.io房间是实现这个目标的合理方法吗?

即(粗略地说):

  • 所有连接的团队成员将join同一个房间(在第一个团队成员连接时dynamic创build)。
  • 服务器收到的任何编辑都会被广播到房间(除了被持续等)外。
  • 在客户端,接收到的任何编辑都将用于更新浏览器中显示的共享数据。

显然它需要以某种方式处理同一个数据的同时更新。

这似乎是一个合理的方法吗?

可能需要考虑一些更强大的function,例如在编辑会话期间,让Redis数据库保存共享数据(并定期将数据“刷新”到持久数据库)?

所有你需要的是Socket.IO(使用RedisStore)和Express.js。 通过使用Socket.IO,您可以设置房间,并将每个房间的访问权限限制为只有身份validation的用户。 使用Redis,您可以使您的应用在一个stream程之外扩展。

有用的链接,供您阅读:

处理Socket.IO,Express和会话
缩放Socket.IO
如何在socket.io中重用redis连接?
socket.io与私人房间聊天
如何用node.js + redis处理用户和套接字对
Node.js,multithreading和Socket.io