小编Har*_*ram的帖子

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

我正在使用node.js socket.io-client和socket.io.我有一个javascript程序,它在客户端与websocket建立多个连接.连接都很好,但我看到的问题是所有连接的client.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);
     }
Run Code Online (Sandbox Code Playgroud)

服务器端

  socket.sockets.on('connection', function(client) {
        console.log("Joining " + message.key + " for instance count " + message.instanceCount …
Run Code Online (Sandbox Code Playgroud)

websocket node.js socket.io

2
推荐指数
1
解决办法
2288
查看次数

标签 统计

node.js ×1

socket.io ×1

websocket ×1