一直在尝试使用来自aws的socket.io、express和elasticloadbalancer制作实时聊天应用程序,以便能够升级。但不幸的是,我不知道如何使用socket.io-redis。
我的redis很好用。在只有一个节点的本地应用程序上,我的应用程序可以在完全相同的设置下正常工作。很明显我在发射器上做错了什么,但我想不通。
这是我的密码。
server = http.createServer(app);
server.listen(PORT, (err) => {
if (err) {
return console.error('Failed', err);
}
console.log(`Listening on port ${PORT}`);
const io = socketio(server);
io.adapter(redisAdapter({ host: process.env.REDIS_IP, port: process.env.REDIS_PORT }));
// Work with sockets
io.on('connection', (socket) => {
console.log('---------------');
console.log('New client connected');
// Client connection
socket.on('joinRoom', (msg) => {
const { user, room } = msg;
console.log('-----------');
console.log(`${user.username} se ha conectado a la sala ${room.name}`);
// Join room
socket.join(room.name);
});
// Recieve message
socket.on('chatMessage', async (msg) => {
console.log('-----------');
console.log(`message recieve, broadcasting to ${msg.room.name}`);
// broadcast message to same room
socket.broadcast
.to(msg.room.name)
.emit(
'message',
{ user: msg.user, message: msg.message },
);
});
// Client disconnect
socket.on('disconnect', () => {
console.log('-------------');
console.log('Client disconnected');
});
});
return app;
});
暂无答案!
目前还没有任何答案,快来回答吧!