Pregunta

Estoy usando Node.js Socket.io-Client y Socket.io. Tengo un programa de JavaScript que hace múltiples conexiones con WebSocket en un lado del cliente. Las conexiones están bien, pero el problema que estoy viendo es que el Identificación del cliente Para todas las conexiones son las mismas debido a las cuales no puedo seleccionar un cliente individualmente para enviar un mensaje. Las claves se reciben correctamente en el lado del servidor.

Si ejecuto dos instancias del cliente desde dos instancias de nodo. JS, el problema no está allí. Pero esta no es una solución escalable para mi escenario. ¿Hay alguna forma de distinguir los hilos del cliente?

Lado del cliente

    function setup(socketHost,socketPort,key,mesg,count) {
        var socket = new require('socket.io-client').connect( socketHost, {'port': socketPort});
        socket.on('connect', function() {
             var timeNow = new Date().getTime();
             socket.emit('message' , {key : key , instanceCount : count});
        });
        socket.on('disconnect', function() {
             console.log("Disconnected for port " + socketPort + " Key " + key );
         });
     }

     for (i=0; i<10; i++) {
         var key = "key"+i;
         setup('localhost',12000,""hello",i);
     }

Lado del servidor

  socket.sockets.on('connection', function(client) {
        console.log("Joining " + message.key + " for instance count " + message.instanceCount + " with id as " + client.id );
  });
¿Fue útil?

Solución

Creo que es posible que necesite forzar una nueva conexión.

var io_client require('socket.io-client');

options = {
  transports: ['websocket'],
  'force new connection': true
};

var client = io_client.connect(HOST, options);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top