Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript socket.io连接到多个进程_Javascript_Node.js_Redis_Socket.io - Fatal编程技术网

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});
    });     
});