Websocket 插槽IO和角度复制问题

Websocket 插槽IO和角度复制问题,websocket,Websocket,从一个房间搬到另一个房间时,我遇到了重复问题。我在nestjs后端项目中使用websocket,并将angular用作客户端 简单地说,我正试图从一个房间移动到另一个房间,但是socket.fromEvent返回重复项,一旦我登录到另一个房间,重复项就会增加 服务器 进口{ 订阅消息, WebSocketGateway, OnGatewayInit, WebSocketServer, OnGateway连接, OnGatewayDisconnect, }来自“@nestjs/websocket

从一个房间搬到另一个房间时,我遇到了重复问题。我在nestjs后端项目中使用websocket,并将angular用作客户端

简单地说,我正试图从一个房间移动到另一个房间,但是socket.fromEvent返回重复项,一旦我登录到另一个房间,重复项就会增加

服务器
进口{
订阅消息,
WebSocketGateway,
OnGatewayInit,
WebSocketServer,
OnGateway连接,
OnGatewayDisconnect,
}来自“@nestjs/websockets”;
从“Socket.io”导入{Socket,Server};
@WebSocketGateway({传输:['websocket','polling']})
导出类AppGateway实现OnGatewayInit{
@WebSocketServer()wss:Server;
afterInit(服务器:任意){}
@SubscribeMessage('send-message')
handleMessage(客户端:套接字,有效负载:任意){
this.wss.to(payload.userroom).emit('message',{msg:payload.text,when:payload.when,user:payload.user})
}
@SubscribeMessage('join')
handleConnection(客户端:套接字,房间:字符串){
客户。加入(房间)
}
@订阅消息('离开')
handleDisconnect(客户端:套接字,房间:字符串){
客户离开(房间)
}
}
客户
//从一个房间移动到另一个房间时连接、离开和加入
GetChatMessages和StartSession(会话ID:number,userChat:number){
这个.clearChatContent();
this.activeSessionId=sessionId;
this.activeChat=userChat;
this.messages=消息;
this.socket.connect()
this.socket.emit('leave',this.beforesession);
this.socket.emit('join',this.activeSessionId);
this.beforesession=this.activeSessionId;
this.socket.fromEvent('message').subscribe((message:any)=>{
console.log(消息)
this.messages.push(message);
这个.scrollToBottom();
});
}
//发送消息给
sendSocketMessage(){
this.socket.emit('send-message',{text:this.respondMessage,when:new Date,user:this.user_id})
}