Guards

There is no difference between web sockets guards and the regular guards. The only thing you should be aware of is that instead of throwing HttpException, you should use the WsException.

info Hint The WsException class is exposed from @nestjs/websockets package.

Binding guards

Here is an example that makes use of a method-scoped guard (class-scoped works too):

  1. @@filename()
  2. @UseGuards(AuthGuard)
  3. @SubscribeMessage('events')
  4. handleEvent(client: Client, data: unknown): WsResponse<unknown> {
  5. const event = 'events';
  6. return { event, data };
  7. }
  8. @@switch
  9. @UseGuards(AuthGuard)
  10. @SubscribeMessage('events')
  11. handleEvent(client, data) {
  12. const event = 'events';
  13. return { event, data };
  14. }