socket.io的问题,请教一下!
发布于 2 年前 作者 SunGg12138 2144 次浏览 来自 问答

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

4 回复

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

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

多谢了!兄弟们!

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

回到顶部