我目前正在使用Redis缓存调用,并作为SocketIO的状态管理器。我的服务器托管在AWS上,我在微实例上有redis,NodeJS应用程序和Socket服务器适配器都成功连接。我将Redis扩展到xlarge实例,从那时起服务器连接良好,但Socket正在报告
error: Connection timeout Error: Connection timeout
。如果我卸下适配器,Socket工作正常,但没有状态管理。
有什么想法吗?
这就是我使用适配器连接到套接字的方式。
const pubClient = createClient({
url: process.env.REDIS_URL,
password: process.env.REDIS_PWD
});
const subClient = pubClient.duplicate();
await Promise.all([
pubClient.connect(),
subClient.connect()
]);
const io = new Server(server, {
adapter: createAdapter(pubClient, subClient),
path: "/socket/socket.io",
allowEIO3: true,
cors: {
origin: process.env.SOCKET_WHITELIST_DOMAIN.split(' '),
credentials: true
}
});