Я пытаюсь настроить чат-сервер с помощью 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"
}
Что мне нужно сделать, чтобы это сработало?
Вы когда-нибудь получали эту работу? –
@PaulFitzgerald нет, я этого не делал. –