首页 > 解决方案 > WebSocket 使用 node.js 回复每个客户端“onConnect”

问题描述

我的服务器上有一个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 对象都会一次又一次地传输到每个客户端。是否可以将此回复仅限于最初连接的客户端?

标签: javascriptnode.jswebsocketserverclient

解决方案


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

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

...它正是我需要它做的事情。这意味着它只将消息发送到连接的客户端。我不知道为什么我有forEach(client)一点在那里。


推荐阅读