// 소켓 연결 시 추가
async handleConnection(client: Socket) {
client.on('BACKEND.UserConnected', async (data) => {
try {
const { userId } = data;
await this.socketService.addUserSocketMapping(userId, client.id);
} catch (error) {
console.error('소켓 연결 중 오류 발생', error);
}
});
}
// 소켓 연결 해제
async handleDisconnect(client: any) {
try {
await this.socketService.deleteSocketIdByUserId(client.id);
} catch (error) {
console.error('소켓 해제 중 오류 발생:', error);
}
}
이렇게 하면 연결 시에는 다시 매핑이 되며 저장이 되고, 해제 시에는 삭제를 하게 된다.
여기서 handleConnection & handleDisconnect 2가지는 nest.js gateway에서 제공하는 메서드이다.
export class EventsGateway implements OnGatewayConnection, OnGatewayDisconnect