universo-platform-3d

Форк
0
38 строк · 1.0 Кб
1
import { Logger } from '@nestjs/common'
2
import {
3
  OnGatewayConnection,
4
  OnGatewayDisconnect,
5
  OnGatewayInit,
6
  WebSocketGateway
7
} from '@nestjs/websockets'
8
import { Server, WebSocket } from 'ws'
9
import { WsAuthHelperService } from './ws-auth-helper.service'
10

11
@WebSocketGateway()
12
export class GodotGateway
13
  implements OnGatewayConnection, OnGatewayDisconnect, OnGatewayInit
14
{
15
  constructor(
16
    private readonly logger: Logger,
17
    private readonly wsAuthHelperService: WsAuthHelperService
18
  ) {}
19

20
  private channelSubs: Record<string, WebSocket[]> = {}
21

22
  /** on server init */
23
  public afterInit(server: Server) {
24
    this.logger.log('Socket is live', GodotGateway.name)
25
  }
26

27
  /** on connect event */
28
  public handleConnection(client: WebSocket, ...args: any[]) {
29
    this.wsAuthHelperService.handleConnectionHelper(client, args)
30
  }
31

32
  /** on disconnect event */
33
  public handleDisconnect(client: WebSocket) {
34
    this.logger.log('Handle Disconnect', GodotGateway.name)
35
    this.wsAuthHelperService.removeSubscriber(client)
36
    client.close()
37
  }
38
}
39

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.