【发布时间】:2015-05-26 02:10:21
【问题描述】:
我正在尝试使用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 不,我没有。
标签: javascript node.js redis socket.io