javascript - 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 对象都会一次又一次地传输到每个客户端。是否可以将此回复仅限于最初连接的客户端?
解决方案
这是我的错误,所以当这样包装时:
wss.on('connection', (ws) => {
console.log('[server:onConnection]');
ws.send('FIRST_RESPONSE');
...它正是我需要它做的事情。这意味着它只将消息发送到连接的客户端。我不知道为什么我有forEach(client)
一点在那里。
推荐阅读
- firebase - 如何对托管在 Firebase 中的静态站点进行 IP 白名单?/ Firebase 托管是否有 WAF?
- unity3d - 检测到遗留物质材料(使用新版本的 Unity 时)
- node.js - NodeJS 存储基于文件的 JSON 数据库的最佳方式?
- c# - 向 CefSharp v51 添加控件(如 URL 栏、返回、刷新)
- bash - 如何将 shell 完成推迟到 bash 和 zsh 中的另一个命令?
- python - 如何导入依赖 psycopg2 游标对象的辅助函数?
- sql - 如何编写 case 语句以返回重复记录?
- c - 野牛递归在链表中表现异常
- dart - 在 PageView 动画期间对象为“null”,在动画结束时工作
- python - 除了使用多个临时文件之外,还有更好的方法来临时存储文本文件的大量输出数据(放在列和行中)吗?