我用nodejs,express和socketio写了一个聊天应用程序。 它支持在一个房间聊天,并支持多个房间, 我将客户端数据保存在内存中,例如全局 变量房间,我存储像这样的客户端数据..
var rooms = {
"room1": [
{username: "user1", socket: user1Socket},
{username: "user2", socket: user2Socket},
],
"room2": [
{username: "user3", socket: user3Socket},
{username: "user4", socket: user4Socket},
]
}
但群集中有多个服务器,客户端不知道连接到哪个服务器,因为这是负载均衡器的工作,然后出现问题,user1和user2应该在同一个房间,但是他们可能连接到不同的服务器..
我该怎么办?
答案 0 :(得分:1)
您需要使用RedisStore配置服务器。有关详细信息,请查看此处:https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO#server