我正在使用 Node.js 服务器上的 npm ws 库。我正在查看文档并找到了一种遍历客户端的方法,例如,向使用该wss.clients
对象的每个人发送消息:
const WebSocket = require('ws');
const wss = new WebSocket.server({ port:8080 });
//...
wss.clients.forEach(client => {
client.send("A message to you!");
});
我最初认为这wss.clients
是一个数组,因为它让我可以使用数组原型遍历它forEach()
,但是当我尝试wss.clients.find()
在它上运行以仅向特定连接发送消息时,出现错误:
TypeError: wss.clients.find is not a function
我跑console.log(Array.isArray(wss.clients))
它说假的。当我尝试时console.log(wss.clients)
,我得到一个看起来像这样的对象:
Set { WebSocket { ... } }
所以,我的问题是,wss.clients
对象如何能够运行数组原型forEach()
?它在没有使用Object.keys()
或任何东西的情况下工作。wss.clients.pop()
出于好奇,我也尝试过,它给出了另一种类型的错误。
究竟是wss.clients
什么?对象还是数组?