Node.js Socket.io-共享“;“朋友活动”;设计模式

Node.js Socket.io-共享“;“朋友活动”;设计模式,node.js,sockets,design-patterns,websocket,socket.io,Node.js,Sockets,Design Patterns,Websocket,Socket.io,我正在为一些客户端(移动、单页应用程序…)编写一些NodeJS应用程序。该应用程序是游戏,相当社会化-用户可以有朋友和游戏需要在他们之间实时共享事件。所以我决定使用Socket.io 如何在用户朋友的连接套接字之间有效地共享事件?一个用户可以连接多个客户端(因此他有更多连接的套接字)。 使用socket.io“rooms”是一个好主意吗?每个用户都有一个房间,当一些事件发生时,它会发送到我朋友的每个房间? 如何有效处理? 为了更好地理解这个概念,你可以想象它和facebook墙(或好友活动右面板

我正在为一些客户端(移动、单页应用程序…)编写一些NodeJS应用程序。该应用程序是游戏,相当社会化-用户可以有朋友和游戏需要在他们之间实时共享事件。所以我决定使用Socket.io

如何在用户朋友的连接套接字之间有效地共享事件?一个用户可以连接多个客户端(因此他有更多连接的套接字)。 使用socket.io“rooms”是一个好主意吗?每个用户都有一个房间,当一些事件发生时,它会发送到我朋友的每个房间? 如何有效处理?

为了更好地理解这个概念,你可以想象它和facebook墙(或好友活动右面板)一样


您将如何处理它?

您可以尝试使用socket.io文件室解决此任务,但我认为这会导致应用程序停止运行,例如,因为开销太大

1000个用户=>equals=>1000个房间(每个用户一个房间)

这是1000个连接,没有人特别听朋友的活动。 因此,上述方法似乎已经无法扩展

我会尝试发布/订阅模式,这不是很难实现,您可以使用带有
.listenTo
的微库或主干,甚至是带有Redis pub/sub的socket.io

  • 用户可以选择监听或停止监听好友事件
  • 对于简单的好友事件,一个用户不会收到大量通知
根据您的应用程序行为,列表还会继续列出。 一些有有趣信息的问题


这看起来更像是发布/订阅模式。。这就是你想要的吗?是的,基本上你是对的