一尘不染

webSocketServer node.js如何区分客户端

node.js

我成功地将套接字与node.js一起使用,但是我不知道如何在代码中区分客户端。有关套接字的部分是这样的:

var WebSocketServer = require('ws').Server, 
    wss = new WebSocketServer({port: 8080});
wss.on('connection', function(ws) {
    ws.on('message', function(message) {
        console.log('received: %s', message); 
        ws.send(message);
    });
    ws.send('something');
});

这段代码可以与我的客户端js正常运行。

但我想向特定用户或服务器上打开套接字的所有用户发送消息。

就我而言,我以客户端的身份发送消息,但收到响应,但其他用户则什么也没显示。

例如,我希望user1通过webSocket向服务器发送消息,并向其套接字打开的user2发送通知。


阅读 668

收藏
2020-07-07

共1个答案

一尘不染

您可以简单地将用户ID分配给数组CLIENTS [],其中将包含所有用户。您可以直接向所有用户发送消息,如下所示:

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);
        sendAll(message);
    });
    ws.send("NEW USER JOINED");
});

function sendAll (message) {
    for (var i=0; i<CLIENTS.length; i++) {
        CLIENTS[i].send("Message: " + message);
    }
}
2020-07-07