CNode

求解使用Redis拓展Socket.io时遇到的一个问题

Jjinxc发布于12 年前最后回复11 年前5 回复7582 浏览0 收藏

按照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)

L
lik0914#1·11 年前
引用 luoyjx记得有个东西叫socket.io redis

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

J
jinxc#2·12 年前

已解

7
7demo#3·12 年前

怎么解决的

L
lik0914#4·11 年前
引用 jinxc已解

@jinxc 怎么解决的呢

L
luoyjx#5·11 年前

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

参与回复
登录后即可参与回复。登录