查找当前客户端(websocket)

时间:2016-05-25 02:44:33

标签: javascript node.js websocket

我正在使用类似以下代码的内容来保存数组中的所有客户端......

var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({port: 8080}),
CLIENTS=[];

wss.on('connection', function(ws) {
    CLIENTS.push(ws);
    ws.on('message', function(message) {
        console.log('received: %s', message);
        findClient(message);
    });
    ws.send("NEW USER JOINED");
});

function findClient (message) {
    for (var i=0; i<CLIENTS.length; i++) {
        //this is where I'm stuck
        if current client then return i
    } 
}

我不知道在for循环中放入什么来查找当前客户端。我想迭代数组,如果当前客户端==数组中的客户端之一,我想返回它的索引。

我确信有一种简单的方法可以做到这一点,但我被卡住了。

1 个答案:

答案 0 :(得分:0)

执行findClient(ws) - 您已经拥有属于该特定客户端的ws(套接字)绑定到消息事件处理程序的闭包。然后findClient函数变为:

function getClientIndex(socket) {
  return CLIENTS.indexOf(socket);
}