求解使用Redis拓展Socket.io时遇到的一个问题
按照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,如果是这样的话,对性能有点影响。 请教机制的小伙伴……