跳到主要内容
CNode

socket.io的问题,请教一下!

问答
SSunGg12138发布于 9 年前最后回复 9 年前
446620

在使用socket.io时,我把用户信息存在了用户对应的socket对象中。但是现在要扩展成多进程,我要再使用socket.io-redis。 那么问题来了,我在一个进程中怎么通过socket.id来获取这个对于的socket对象中的用户信息

查看回复

回复 (4)

L
luanxuechao#49 年前

2楼正解,起码是我到目前为止,解释的最清楚的一个

S
SunGg12138#39 年前

多谢了!兄弟们!

H
haozxuan#29 年前

socketio-redis的原理是通过redis的pub sub机制和hash(可选不同)算法,首先,通过对用户ID的hash,算出应该sub到哪个redis上,后期,另一个进程上的用户向该用户发送消息时,只需要知道ID,hash后,就可以直接pub到指定redis上去,这样就实现了跨进程间的消息传递,同理,你想在另一个进程中获取不属于该进程的socke中包含的用户信息,只需要hash出他的redis,然后pub过去消息即可,当然如果你仅仅是想获取用户信息,那么吊后台接口比这个要简单的多。

N
nullcc#19 年前

你可以把socket对象序列化到redis里,socket.id做key

参与回复

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