Websockets

守卫

学习如何在 NestJS WebSocket 应用程序中使用守卫来保护路由和消息处理程序

守卫

Web Socket 守卫和常规 HTTP 应用程序守卫之间没有根本区别。唯一的区别是,您应该使用 WsException 而不是抛出 HttpException

提示 WsException 类从 @nestjs/websockets 包导出。

绑定守卫

以下示例使用方法作用域守卫。就像基于 HTTP 的应用程序一样,您也可以使用网关作用域守卫(即,在网关类前加上 @UseGuards() 装饰器)。

@UseGuards(AuthGuard)
@SubscribeMessage('events')
handleEvent(client: Client, data: unknown): WsResponse<unknown> {
  const event = 'events';
  return { event, data };
}