登录
注册
node.js 学习社区
如何原生WebSocket向指定的客户端进行通讯?

loklokou

2017-08-15 16:22

场景需求:通过Net模块进行WebSocket,因为需要与硬件通讯所以需要使用原生WebSocket方式交互。

问题:

一,如何找到每一个接入服务器A的客户端的IP和Port;

二,如何无法实现第一个问题,那么我应该怎么主动绕过服务器A直接通过后台(WebSite)直接发送指令给我的指定客户端?

var net = require('net');
var server = net.createServer(function (client) {
client.on('data', function (data) {
       console.log(data);
    });
client.unpipe(client);
});
以上是我的简单实现代码,能正常显示data数据,并能通过client.write('xxxx');应答客户端的设备。


回复 · 1

  • 获取到socket的sessionID啊,你这原生代码弄socket通信的话,信息都是你上面的client里面

     补充部分代码,拿到客户端的唯一标识
      
        var clientList=[];
    
        server.on('connection', function(client) {   
          client.name = client.remoteAddress + ':' + client.remotePort;    
          client.write('Hi ' + client.name + '!\n');    
          clientList.push(client);    
          client.on('data', function(data) {      
             broadcast(data, client); 
          });  
        });  
        function broadcast(message, client) {    
            for(var i=0;i<clientList.length;i+=1) {      
              if(client !== clientList[i]) {        
                clientList[i].write(client.name + " says " + message);      
              }    
            }  
        } 

    0

发表回复

你可以在回复中 @ 其他人