使用redis使用socket.io水平扩展express / node.js

时间:2014-12-11 00:50:31

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

我正在努力通过快速后端进行扩展。问题是,每次用户进入或重新启动服务器时,都会获得一个新的socket.id。另外,我无法将整个套接字保存到内存中,因为它给了我一个[Circular JSON]问题。如何将socket的某些部分保存到redis中,以便从其他服务器中检索相同的套接字?

1 个答案:

答案 0 :(得分:4)

您需要将用户与socket.id分离。 socket.id是易失性的,即使浏览器刷新也可以更改。相反,当用户套接字连接时,请查看传递的握手数据,并使用该数据将套接字与用户相关联。至于在redis中持久化套接字数据,已经可以使用socket.io-redis为您处理。

请查看此链接以扩展socket.io:http://socket.io/docs/using-multiple-nodes