Я работаю с библиотекой npm ws на сервере Node.js. Я просматривал документацию и нашел способ l oop через клиентов, например, чтобы отправить сообщение всем, используя объект 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()
, чтобы отправить сообщение только на определенное соединение c, я получил ошибку:
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
? Объект или массив?