通过Id获取Socket Object with node,redis-adapter和socket.io

时间:2015-06-07 13:39:11

标签: node.js redis socket.io node-redis

我正在使用nodejs和socket.io构建实时webgame。我正在使用redis-adaptersticky-sessions,因此我可以运行群集。

我的问题是我需要使用他的id来获取客户端的套接字对象。我不知道我怎么做! HERE有一个socket.io本机解决方案,但它只能在非cluter模式下工作。令人奇怪的是redis-adapter没有实现这个功能!

我可以(使用node-redis)在redis LIST中保存每个客户端的整个套接字对象,并在需要时获取它,但我不喜欢这个解决方案。当我只能保存套接字ID时,为什么我需要为每个客户端保存redis中的整个套接字对象?无论如何这个解决方案无法工作,因为当我尝试在redis中保存套接字对象时,我有这个错误:

converting circular structure to JSON

所以,似乎套接字有一个circluar结构,它们不能作为字符串存储在redis中(使用JSON.stringify(socket))。

所以关键是,正如我所说:我需要使用套接字ID的特定客户端的套接字对象。我无法在redis中手动存储所有客户端套接字对象,而套接字io的redis-adapter似乎没有实现此功能。我该怎么办?

0 个答案:

没有答案