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大容量,低延迟困难
- node.js – 在进程之间共享套接字
- SocketIo.use(function(socket,next)) – 下一步如何捕获或接收它?
- 节点js从tcp socket net.createServer读取特定的消息
- 为什么Node.js HTTP服务器不响应来自Python的请求?
- 获取node.js套接字closures/结束事件上的远程端点属性
- Node.js可写入stream创build错误的文件(更大和不可读)
- nodejs:mysql无法访问连接查询callback中的全局variables
- 亚马逊Alexa:从SmartHomeSkill lambda控制TCP设备
- socket.IO-objc与AZSocketIO