2015-05-26 5 views
2

Я пытаюсь настроить чат-сервер с помощью socket.io и socket.io-redis, поэтому у меня может быть процесс на нескольких процессорах/серверах.socket.io подключиться к нескольким процессам

У меня возникли проблемы с интеграцией socket.io-redis в уже рабочую систему, которая работает на одном сервере с одним процессом. Когда я кластер процесс на двух процессорах, используя: pm2 start chat.js -i max. Socket.io больше не поддерживает соединение.

Чтобы решить эту проблему, я прочитал, что мне нужно использовать Redis, так что я установил Redis и он работает, и в соответствии с socket.io-redis документов все, что нужно сделать это:

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" 
} 

Что мне нужно сделать, чтобы это сработало?

+0

Вы когда-нибудь получали эту работу? –

+0

@PaulFitzgerald нет, я этого не делал. –

ответ

0
io.on('connection', function (socket) { 
    socket.join('public_room'); 

    socket.on('join', function(data){ 
     io.to('public_room').emit('test',{a:10}); 
    });  
}); 
+1

Пожалуйста, объясните свой ответ для лучшего понимания. – Babel

Смежные вопросы