Socket.io Todos los hilos de un cliente tienen el mismo Socket.id
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 );
});
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);