diff --git a/frontend/Peer.ts b/frontend/Peer.ts index f58b9ed..c95da2d 100644 --- a/frontend/Peer.ts +++ b/frontend/Peer.ts @@ -80,4 +80,8 @@ export default class Peer extends EventTarget to: this.socketId }); } + async forget(){ + this.mwse.peers.delete(this.socketId as string); + this.mwse.pairs.delete(this.socketId as string); + } } \ No newline at end of file diff --git a/frontend/Room.ts b/frontend/Room.ts index 2d721b3..245ffa2 100644 --- a/frontend/Room.ts +++ b/frontend/Room.ts @@ -99,6 +99,7 @@ export default class Room extends EventTarget type:'ejectroom', roomId: this.roomId }); + this.peers.clear(); if(type == 'success') { this.mwse.rooms.delete(this.roomId as string); diff --git a/frontend/index.ts b/frontend/index.ts index 84cc19a..406fc70 100644 --- a/frontend/index.ts +++ b/frontend/index.ts @@ -75,17 +75,20 @@ export default class MWSE extends EventTarget { let {id,roomid} = payload; let room = this.room(roomid); let peer = this.peer(id, true); + room.peers.set(peer.socketId as string, peer); room.emit('join', peer); }) this.EventPooling.signal('room/ejected',(payload : {id:string,roomid:any,ownerid:string}) => { let {id,roomid} = payload; let room = this.room(roomid); let peer = this.peer(id); + room.peers.delete(peer.socketId as string); room.emit('eject', peer); }) this.EventPooling.signal('room/closed',(payload : {roomid:any}) => { let {roomid} = payload; let room = this.room(roomid); + room.peers.clear(); room.emit('close'); this.rooms.delete(roomid); })