Pipes
Il n'y a pas de différence fondamentale entre les pipes ordinaires et les pipes des sockets web. La seule différence est qu'au lieu de lancer HttpException, vous devriez utiliser WsException. De plus, tous les pipes ne seront appliqués qu'au paramètre data (parce que valider ou transformer l'instance client est inutile).
Astuce La classeWsExceptionest exposée dans le package@nestjs/websockets.
Lier les pipes#
L'exemple suivant utilise une pipe à portée de méthode instanciée manuellement. Tout comme pour les applications basées sur HTTP, vous pouvez également utiliser des pipes à l'échelle de la gateway (en préfixant la classe de la gateway avec un décorateur @UsePipes()).
@UsePipes(new ValidationPipe({ exceptionFactory: (errors) => new WsException(errors) }))
@SubscribeMessage('events')
handleEvent(client: Client, data: unknown): WsResponse<unknown> {
const event = 'events';
return { event, data };
}
@UsePipes(new ValidationPipe({ exceptionFactory: (errors) => new WsException(errors) }))
@SubscribeMessage('events')
handleEvent(client, data) {
const event = 'events';
return { event, data };
}

