首页 > 解决方案 > 通过 Node.js ws websockets 中的某个通道发送消息

问题描述

我想使用 websockets 在前端和后端之间创建双向通信。我正在使用 Node.js ws。使用

  wss.clients.forEach(function each(client) {
    client.send("This is a message")
  })

我可以使用我称之为“消息”标签的方式向所有客户发送消息。使用 Chrome 开发人员工具,我可以看到发送了一个带有 ON_MESSAGE 事件的 ws 数据包。

我想使用另一种标签,但是我找不到有关如何执行此操作的文档,也找不到任何可以解释执行此操作的方法的内容。我尝试了以下类似的方法,但没有成功。

  wss.clients.forEach(function each(client) {
    client.emit("TAG", "This is a message")
  })

标签: javascriptnode.jswebsocketws

解决方案


例如,您可以通过遵循特定的转换来实现这一点

 const body = {
  tag: 'mytag',
  data: {
    message:"this is a message"
  }
};
 wss.clients.forEach(function each(client) {
client.emit(JSON.stringify(body))
})

依此类推,在收到此数据后,您可以在 body 对象上获取标签和消息


推荐阅读