javascript - 通过 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")
})
解决方案
例如,您可以通过遵循特定的转换来实现这一点
const body = {
tag: 'mytag',
data: {
message:"this is a message"
}
};
wss.clients.forEach(function each(client) {
client.emit(JSON.stringify(body))
})
依此类推,在收到此数据后,您可以在 body 对象上获取标签和消息
推荐阅读
- angular - 使用 Angular 指令选择 FormGroup
- sql - 在数据库中搜索大字符串
- javascript - Vue:检索 Firestore 数据以显示用户的企业名称 v-for 循环
- c# - 为什么部分封闭的泛型在函数中运行时起作用,但在直接调用 ServiceCollection 时不起作用?
- ruby-on-rails - 在 Rails 中回滚迁移时,我得到 NoMethodError: undefined method `trim' for LL():Rake::Scope::EmptyScope
- cors - 本地主机到 AWS Lambda 没有“Access-Control-Allow-Origin”标头
- matrix - 如何在 Eigen 中快速计算 A'A,其中 A 是稀疏矩阵?
- java - 不一致地获取 ConnectionCloseException
- django - Django 通道图像保存、TextField 或 ImageField
- vscode-remote - 无法通过 SSH 通过终端在 VS Code 中打开文件