Я создаю чат в своем проекте, поэтому я использую 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});
})
}