Socket.io не передает данные в определенную комнату - PullRequest
0 голосов
/ 29 января 2020

При отправке данных в определенную комнату после обновления API она работает нормально. Но когда я обновляю код sh angular, данные не отправляются в клиентскую комнату. Я не знаю, была ли проблема в коде API или пользовательского интерфейса.

Код сервера

io.on('connection', (socket) => {
    socket.on("login", userId => {
        socket.id = userId
        sockets.add(socket)
        console.log(`Socket ${socket.id} added`);
    })

    socket.on('disconnect', () => {
        console.log(`Delete socket : ${socket.id}`);
        sockets.delete(socket);
        console.log(`Remaining sockets : ${sockets.size}`);
    })

    socket.on('join', (roomId) => {   //Room
        socket.join(roomId);
    })


    socket.on("messageData", (data) => {
        chatSchema.create(data, (err, response) => {
            if (err) {
                console.log(err);
                return false;
            }
            else if (response) {
                socket.to(roomId).emit('data', response)
            }
        })
    }) 
}); 

Angular Код Сервисный файл

getMessages() {
    const observable = new Observable(observer => {
      this.socket.on('data', (res) => {
        observer.next(res)
      });
    });
    return observable
  }

ts файл

ngOnInit() {
      this.sub = this.chatService.getMessages().subscribe(response => {   //Socket On
      this.chats.push(response);
      console.log(response);
    })
  }
...