求解使用Redis拓展Socket.io时遇到的一个问题
发布于 4 年前 作者 jinxc 3883 次浏览 最后一次编辑是 2 年前

按照Socket.io wiki上的配置和说明,了解到使用redis后,socket.io的信息就在redis中共享了,测试socket.broadcast.to(room).emit(action, data)确实在多进程下运行正常,但是io.sockets.socket(socketId).emit(‘data’, data)只能在同一进程上的socket可以正常通信。多进程下虽然可以获取到io.sockets.socket(socketId)对象,但是emit的时候无法推送到另一个进程。 有小伙伴遇到类似的问题吗?现在想通过redis的sub,pub来实现io.sockets.socket(socketId).emit(‘data’, data)进程间同步,问题是在单个进程中作io.sockets.socket(socketId)动作是是否是在遍历所有进程中sockets,如果是这样的话,对性能有点影响。 请教机制的小伙伴……

5 回复

已解

怎么解决的

@jinxc 怎么解决的呢

记得有个东西叫socket.io-redis

@luoyjx 用了这个一对一聊天还是不行知道问题在哪吗?

回到顶部