From 9d5aa7f3a11253ebab3b05c83e690cb311a09137 Mon Sep 17 00:00:00 2001 From: simplonco Date: Mon, 16 Jan 2023 14:10:12 +0100 Subject: [PATCH] socket reconnecte automatically to last room and blocked users --- .../nestjs/api_back/src/chat/chat.gateway.ts | 15 ++++++++++- .../nestjs/api_back/src/chat/chat.service.ts | 26 ------------------- .../nestjs/api_back/src/chat/dev/dev_utils.ts | 5 ++-- 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts index 773dee66..80e2b589 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts @@ -2,6 +2,7 @@ import { WebSocketGateway, SubscribeMessage, WebSocketServer, MessageBody, Conne import { UsersService } from 'src/users/users.service'; import { ChatService } from './chat.service'; import { socketDto } from './dto/socket.dto'; +import { printCaller } from './dev/dev_utils'; @WebSocketGateway(5000, { path: '/chat', @@ -22,12 +23,24 @@ implements OnGatewayConnection, OnGatewayDisconnect server; async handleConnection(socket: socketDto) { - console.log('- socket connected :', socket.id, socket.handshake.query.username); + printCaller('- socket connected :', socket.id, socket.handshake.query.username); + socket.username = socket.handshake.query.username.toString(); this.sockets.set(socket.username, socket); + printCaller("socket.username:", socket.username); + let not_emit: string = `${socket.username}_not_emit`; socket.join(not_emit); + let blocked = await this.chatService.getListBlockUser(socket.username); + blocked.forEach(user => + { + not_emit = `${user}_not_emit`; + socket.join(not_emit); + }); + + let current_room = await this.chatService.getCurrentRoomName(socket.username); + socket.join(current_room); } async handleDisconnect(socket: socketDto) { this.sockets.delete(socket.username); diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index cfbca870..5225ad7d 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -377,37 +377,11 @@ export class ChatService { let user = await this.getUserByName(username); let friends_users = await this.friendshipService.findAllBlockedFriends(user.id); let users = friends_users.map(user => user.receiverUsername); - console.log(users); printCaller("-- out "); return users; } -/* - // find list blocked - - findAllBlockedFriends - extract the receiver_username (i am the sender) - - - // bock a user - - findfriendshipbyname - return friendship - blockfriendship - return nothing - createfriendship - return friendship (it worked) - return http exception (cannot create friendship) - - - // unblock - - findfriendshipbyname - return friendship - removefriendship - return nothing -*/ /* ADDERS ************************************************* */ diff --git a/srcs/requirements/nestjs/api_back/src/chat/dev/dev_utils.ts b/srcs/requirements/nestjs/api_back/src/chat/dev/dev_utils.ts index 309c1e34..e3dc8ae0 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/dev/dev_utils.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/dev/dev_utils.ts @@ -1,4 +1,5 @@ -export function printCaller(prefix: string = "") { +export function printCaller(...prefix) +{ try { throw new Error(); @@ -8,6 +9,6 @@ export function printCaller(prefix: string = "") { Error.captureStackTrace(e); let stack = e.stack.split('\n'); let caller = stack[2].trim(); - console.log(prefix + ' ' + caller); + console.log(...prefix, caller); } }