summaryrefslogtreecommitdiff
path: root/server/providers/gateways/ping.gateway.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/providers/gateways/ping.gateway.ts')
-rw-r--r--server/providers/gateways/ping.gateway.ts67
1 files changed, 0 insertions, 67 deletions
diff --git a/server/providers/gateways/ping.gateway.ts b/server/providers/gateways/ping.gateway.ts
deleted file mode 100644
index 27fe785..0000000
--- a/server/providers/gateways/ping.gateway.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { UseGuards } from '@nestjs/common';
-import { ConnectedSocket, MessageBody, OnGatewayConnection, OnGatewayDisconnect, OnGatewayInit, SubscribeMessage, WebSocketGateway, WebSocketServer, WsException } from '@nestjs/websockets';
-import { GatewayJwtBody } from 'server/decorators/gateway_jwt_body.decorator';
-import { JwtBodyDto } from 'server/dto/jwt_body.dto';
-import { Server, Socket } from 'socket.io';
-import { GatewayAuthGuard } from '../guards/gatewayauth.guard';
-import { JwtService } from '../services/jwt.service';
-
-class JoinPayload {
- currentRoom?: string;
- newRoom: string;
-}
-
-class PingPayload {
- currentRoom: string;
-}
-
-@WebSocketGateway()
-@UseGuards(GatewayAuthGuard)
-export class PingGateway implements OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect {
- @WebSocketServer()
- server: Server;
-
- constructor(private jwtService: JwtService) {}
-
- afterInit(server: Server) {
- console.log('Sockets initialized');
- }
-
- handleConnection(client: Socket) {
- // you can do things like add users to rooms
- // or emit events here.
- // IMPORTANT! The GatewayAuthGuard doesn't trigger on these handlers
- // if you need to do anything in this method you need to authenticate the JWT
- // manually.
- try {
- const jwt = client.handshake.auth.token;
- const jwtBody = this.jwtService.parseToken(jwt);
- console.log(client.handshake.query);
- console.log('Client Connected: ', jwtBody.userId);
- } catch (e) {
- throw new WsException('Invalid token');
- }
- }
-
- handleDisconnect(client: Socket) {
- console.log('Client Disconnected');
- }
-
- @SubscribeMessage('ping')
- public handlePing(
- @ConnectedSocket() client: Socket,
- @MessageBody() payload: PingPayload,
- @GatewayJwtBody() jwtBody: JwtBodyDto,
- ) {
- this.server.to(payload.currentRoom).emit('pong', { message: { userId: jwtBody.userId } });
- console.log(client.rooms);
- }
-
- @SubscribeMessage('join-room')
- public async joinRoom(client: Socket, payload: JoinPayload) {
- console.log(payload);
- payload.currentRoom && (await client.leave(payload.currentRoom));
- await client.join(payload.newRoom);
- return { msg: 'Joined room', room: payload.newRoom };
- }
-}