Я пытаюсь заставить сервер socketIO работать на NodeJS с Typescript.Конкретное поведение, которое я хочу создать, заключается в том, что он будет отправлять сообщение во все подключенные сокеты (включая себя) каждые 1000 мс.
У меня работает базовый сокет, и когда клиенты подключают триггеры сообщения «on connect», то естьхорошо.
this.io.on('connection', (socket: Socket)=>{
console.log('a user connected');
});
Так что теперь, чтобы отправить сообщение всем клиентам, я должен:
this.io.emit("newTest","Test")
Затем прослушать это (на том же сервере, прямо под:)
this.io.on("newTest",(socket:Socket)=>{
console.log("Echoo")
})
Но я никогда не получаю "эхо" при записи в консоль.На самом деле, я тоже слушаю клиента (приложение angular 6), и хотя это приложение, когда оно подключается, оно правильно отображает «пользователь подключен» ... (поэтому сокет работает) ... this.io.Кажется, что emit () на самом деле не отправляет сообщение.
Я МОГУ отправить сообщение, если сделаю:
this.io.on('connection', (socket: Socket)=>{
console.log('a user connected');
socket.emit("newTest","test")
});
, и это прекрасно работает.НО я не могу сделать this.io.emit () .. для отправки всем клиентам.Я мог бы вручную попытаться перехватить все объекты «сокетов» в массиве при их подключении, и затем всякий раз, когда я получаю сообщение, я перебираю их и выполняю socket.emit ... но должен быть лучший способ, чего мне не хватает?