Javascript socket.io连接到多个进程
我正在尝试使用Javascript socket.io连接到多个进程,javascript,node.js,redis,socket.io,Javascript,Node.js,Redis,Socket.io,我正在尝试使用socket.io和socket.io redis设置聊天服务器,这样我就可以在多个处理器/服务器上运行该进程 我在将socket.io redis集成到一台服务器和一个进程上运行的已在运行的系统中时遇到问题。当我使用以下命令将进程集群到两个处理器上时:pm2 start chat.js-I max。Socket.io无法再保持连接 为了解决这个问题,我读到我需要使用redis,所以我安装了redis,它正在运行,根据socket.io redisdocs,我需要做的就是: var
socket.io
和socket.io redis
设置聊天服务器,这样我就可以在多个处理器/服务器上运行该进程
我在将socket.io redis集成到一台服务器和一个进程上运行的已在运行的系统中时遇到问题。当我使用以下命令将进程集群到两个处理器上时:pm2 start chat.js-I max
。Socket.io无法再保持连接
为了解决这个问题,我读到我需要使用redis,所以我安装了redis,它正在运行,根据socket.io redis
docs,我需要做的就是:
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
所以,我用它来做这个:
var io = require('socket.io')(3032);
var redis = require('socket.io-redis');
io.adapter(redis({host: 'localhost', port: 6379}));
io.on('connection', function(socket){
socket.broadcast.on('Message', function(data){
data = JSON.parse(data);
socket.to(data.room).emit('Message', data.message);
});
});
当我在无法连接的浏览器上运行时,我得到以下信息:
{
"code":1,
"message":"Session ID unknown"
}
我需要做什么才能让它工作?请解释你的答案以便更好地理解。你曾经让它工作过吗?@PaulFitzgerald不,我没有。
io.on('connection', function (socket) {
socket.join('public_room');
socket.on('join', function(data){
io.to('public_room').emit('test',{a:10});
});
});