WebSocket 使用 node.js 回复每个客户端“onConnect”

Posted

技术标签:

【中文标题】WebSocket 使用 node.js 回复每个客户端“onConnect”【英文标题】:WebSocket replies to each client 'onConnect' with node.js 【发布时间】:2019-07-20 16:05:47 【问题描述】:

我的服务器上有一个ws.on('connection') 事件,它在每个连接的客户端的第一次连接上发送一个 JSON 对象。

但是因为这个位:

        // Sending the payload to all clients.
        wss.clients.forEach((client) => 
            // Prepare for transmission.
            let transmission = JSON.stringify(SocketObject.query());

            // Debug
            console.log('[server:onConnection:init]');

            // Send the transmission.
            client.send(transmission);
        );

每次客户端连接时,JSON 对象都会一次又一次地传输到每个客户端。是否可以将此回复仅限于最初连接的客户端?

【问题讨论】:

【参考方案1】:

这是我的错误,所以当这样包装时:

    wss.on('connection', (ws) => 
        console.log('[server:onConnection]');
        ws.send('FIRST_RESPONSE');

...它完全符合我的需要。这意味着它只将消息发送到连接的客户端。我不知道为什么我有forEach(client) 位。

【讨论】:

以上是关于WebSocket 使用 node.js 回复每个客户端“onConnect”的主要内容,如果未能解决你的问题,请参考以下文章

如何扩展 Node.js WebSocket Redis 服务器?

使用websocket节点js和php中的输入表单保存消息

如何使用 node.js 使 Websocket 服务器安全

使用node.js的Websocket上的无效帧头

Node.js笔记-使用nodejs-websocket构建WebSocket服务

如何解决Vue.js里面noVNC的截图问题——蛋疼的cookies验证和node.js的websocket代理