Socket.io – 分享“朋友活动”的devise模式

我正在为某些客户端(手机,单页面应用程序…)编写一些NodeJS应用程序。 应用程序是游戏和相当社交 – 用户可以有朋友和游戏需要实时共享他们之间的事件。 所以我决定使用Socket.io。

如何有效地分享用户朋友的连接套接字之间的事件? 一个用户可以连接多个客户端(所以他有更多的连接套接字)。 使用socket.io“房间”是好主意,每个用户有一个房间,当某个事件发生的时候,这个房间是我朋友的每个房间的空间。 如何有效地处理这个?

为了更好的概念,你可以想象它与Facebook墙(或朋友活动的右侧面板)相同的方式。

你将如何处理?

你可以尝试使用socket.io来解决这个问题,但是我认为这会导致应用程序因为开销而中断

1000个用户=>等于=> 1000个房间(每个用户1个房间)

这1000个连接没有任何人特别听朋友活动。 所以上面的方法似乎不可扩展。

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

  • 用户可以select收听或停止收听朋友事件。
  • 一个用户不会得到大量简单的朋友事件的通知。

而这个列表依赖于你的应用程序行为。 一些有趣的信息的问题。

我应该使用什么? Socket.io客房还是Redis pub-sub?

Node.js,Socket.io,Redis pub / sub大容量,低延迟困难