【问题标题】:Websockets multiple events sent and multiple event handlers on client sideWebsockets 在客户端发送多个事件和多个事件处理程序
【发布时间】:2020-10-05 07:03:56
【问题描述】:

最近我开始使用 WebSockets 进行服务器-客户端通信。问题是当我想在连接中发送多种类型的数据时。有没有办法在单个连接中从服务器端向客户端发送多个消息事件并在客户端分别处理它们? 喜欢...

wss.on('connection', function connection(ws){ 
  ws.send('message1',data1);
  ws.send('message2',data2);
  ws.send('message3',data3);
}

Data1,2,3 是不同类型的数据(data1 是 json,data2 是字符串),我想在客户端将它们用于不同的目的。

【问题讨论】:

    标签: javascript node.js express websocket


    【解决方案1】:

    您可以创建每个消息都遵循的结构并将类型附加到此结构:

    wss.send(JSON.stringify({ type: 'firstName', value: 'John' }));
    wss.send(JSON.stringify({ type: 'lastName', value: 'Doe' }));
    

    然后通过检查类型来处理消息:

    wss.on('message', ev => {
      const data = JSON.parse(ev.data);
      switch (data.type) {
        case 'firstName':
          document.getElementById('first-name').textContent = data.value;
          break;
    
        case 'lastName':
          document.getElementById('last-name').textContent = data.value;
          break;
    
        default:
          // Unknown websocket message type
      }
    });
    

    【讨论】:

    • 好的,那么我如何在客户端分别获取这些消息事件?
    • 我会试试的,谢谢,我会告诉你它是否有效!
    • 更新:你是救生员,我不会想到这种方法。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多