Socket.io Все потоки от одного клиента имеют одинаковый сокет.id
Вопрос
Я использую node.js socket.io-client и socket.io. У меня есть программа JavaScript, которая делает несколько подключений к веб -сокету на стороне клиента. Все в порядке, но проблема, которую я вижу, заключается в том, что ID клиента Для всех соединений одинаковы, из -за которых я не могу выбрать клиента индивидуально, чтобы отправить сообщение. Ключи правильно получены на стороне сервера.
Если я запускаю два экземпляра клиента из двух разных экземпляров Node.js, проблемы нет. Но это не масштабируемое решение для моего сценария. Есть ли способ отличить клиентские потоки?
Сторона клиента
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);
}
Серверная сторона
socket.sockets.on('connection', function(client) {
console.log("Joining " + message.key + " for instance count " + message.instanceCount + " with id as " + client.id );
});
Решение
Я думаю, что вам может придется установить новую связь.
var io_client require('socket.io-client');
options = {
transports: ['websocket'],
'force new connection': true
};
var client = io_client.connect(HOST, options);
Не связан с StackOverflow