跳转至

管道

常规管道和 web 套接字管道之间没有根本的区别。 唯一的区别是,你应该使用WsException而不是抛出HttpException。 此外,所有管道将只应用于data参数(因为验证或转换client实例是无用的)。

WsException类是从@nestjs/websockets包中公开的。

绑定管道

下面的示例使用一个手工实例化的方法范围的管道。 就像基于 HTTP 的应用程序一样,您也可以使用网关作用域的管道(即,在网关类前面加上@UsePipes()装饰器)。

1
2
3
4
5
6
@UsePipes(new ValidationPipe())
@SubscribeMessage('events')
handleEvent(client: Client, data: unknown): WsResponse<unknown> {
  const event = 'events';
  return { event, data };
}
1
2
3
4
5
6
@UsePipes(new ValidationPipe())
@SubscribeMessage('events')
handleEvent(client, data) {
  const event = 'events';
  return { event, data };
}