1
resposta

Clusters e WebSocket

Olá,

Realizei a implementação de clusters sugerida na aula em um projeto onde já possuo um serviço via WebSocket (Socket.io). Ao subir em clusters, as comunicações se perdem, devido as múltiplas instâncias.

Qual a melhor forma de contornar essa situação?

Meu arquivo cluster.js está igual ao do curso, porém meu server.js está assim:

var http = require('http');
var app = require('./config/express');
var server = http.createServer(app);
require('./config/database')('mongodb://localhost/xxx');
require('./config/io')(server);

server.listen(3000, function () {
    console.log('Server started and listening on port 3000');
});

Abaixo o arquivo ./config/io.js

module.exports = function (server) {
    let io = require('socket.io').listen(server);

    io.origins('*:*');

    io.on('connection', (socket) => {
        console.log('user connected');
        socket.on('disconnect', function () {
            console.log('user disconnected');
        });
        socket.on('add-message', (message) => {
            io.emit('message', { type: 'new-message', text: message });
        });
    });

};
1 resposta

Amigo, passo pelo mesmo problema, utilizo websockets para notificar, acabei não clusterizando visto que meu servidor só tinha 2 nucleos mesmo. Acompanhando o topico!