node.js ws:如何识别哪个websocket发送了消息?

时间:2018-06-14 08:10:41

标签: node.js websocket

我想知道ws库中的服务器实现是否允许查找,哪个连接的客户端触发了消息事件。我希望我可以避免深入研究代码以找出...

谢谢!

P.S。:我知道FAQ: How to get the IP address of the client?,但是指的是新连接的情况。我对收到的消息感兴趣。

1 个答案:

答案 0 :(得分:0)

等等,没关系 - 我明白了。实际上很明显。

当您定义处理websocket ws的消息的闭包时,您必须处于定义了ws的上下文中 - 即,关闭websocket服务器wss&#39 ; s on - 用于连接'事件。在那里,您还可以访问请求对象req,该对象为您提供远程地址:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws, req) {
  console.log('connected: '+req.connection.remoteAddress);
  ws.on('message', function incoming(message) {
    console.log('received from %s: %s', req.connection.remoteAddress, message);
    // do stuff with the message
  });
});