gpt4 book ai didi

node.js - socket.io 来自一个客户端的所有线程都具有相同的 socket.id

转载 作者:搜寻专家 更新时间:2023-11-01 00:26:42 24 4
gpt4 key购买 nike

我正在使用 node.js socket.io-client 和 socket.io 。我有一个 javascript 程序,它在客户端建立到 websocket 的多个连接。连接都很好,但我看到的问题是所有连接的 client.id 都相同,因此我无法单独选择客户端来发送消息。服务器端正确接收 key 。

如果我从两个不同的 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);

关于node.js - socket.io 来自一个客户端的所有线程都具有相同的 socket.id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9312703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com