Socket.io, Rest API, проблема отправить сообщение в комнату - PullRequest
0 голосов
/ 24 апреля 2020

Я создаю чат в своем проекте, поэтому я использую socket.io.

На самом деле, каждый может увидеть сообщение, написанное кем-то, кроме .... отправителя. Я не понимаю, почему он не работает.

Редактировать: он работал до того, как я использовал module.exports.respond, но мне нужно, чтобы он использовал socket.io в моем контроллере.

Вот код в моем chat.service.ts на моем фронте:

 public sendMessage(data){
    this.socket.emit('new-message', data);
  }

public newMessageReceived(){
let observable = new Observable<{user:String, message:String}>(observer=>{
  this.socket.on('new-message', (data)=>{
    observer.next(data);
  });
  console.log("échec");
  return () => {this.socket.disconnect();}
});

и в моем chat.controller:

module.exports.respond = (socket: any) => {
    socket.on('join', (data: any) => {
      socket.join(data.room)
      console.log(data.user + 'joined the room : ' + data.room);

      socket.broadcast.to(data.room).emit('new user joined', {user:data.user, message:'has joined this room.'});
    });

    socket.on('leave', (data: any) => {

      console.log(data.user + 'left the room : ' + data.room);

      socket.broadcast.to(data.room).emit('left room', {user:data.user, message:'has left this room.'});

      socket.leave(data.room);
    });


  socket.on('new-message',(data: any) => {
    console.log("Hello", data.room, data.user, data.message)
    socket.in(data.room).emit('new-message', {user:data.user, message:data.message});
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...