Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

595
Visualizações
cómo enviar la excepción/error para nestjs websocket del adaptador @nestjs/platform-ws

Estoy tratando de enviar la excepción usando nestjs websocket según las condiciones, intenté usar

throw new WsException('Datos inválidos');

pero sin enviar ninguna excepción

Aquí está el código de ejemplo

 import WebSocket from 'ws'; import { SubscribeMessage, WebSocketGateway, WsException, } from '@nestjs/websockets'; @WebSocketGateway({ path: '/api' }) export class MainGateway { @SubscribeMessage('message') handleMessage(client: WebSocket, payload: any) { if (payload.id === 4) { throw new WsException('Invalid Data'); } client.send(JSON.stringify({ id: payload.id })); } }

y estoy creando la conexión usando angular aquí está el fragmento de código

 export class WsComponent implements OnInit { public value!: number; public subject$ = webSocket('ws://localhost:3000/api'); ngOnInit(): void { const event = { event: 'message', data: { id: 4 } }; this.subject$.subscribe({ next: (v: any) => (this.value = v.id), error: (e) => console.error(e), complete: () => console.info('complete'), }); this.subject$.next(event); } }

Por favor, ayúdame a resolver el problema.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

He luchado con el mismo problema. Creo que el problema es con BaseWsExceptionFilter y su uso de soket.emit. He llegado a lo siguiente:

 import { ArgumentsHost, Catch, HttpException } from "@nestjs/common"; import { BaseWsExceptionFilter, WsException } from "@nestjs/websockets"; @Catch(WsException, HttpException) export class WebsocketExceptionsFilter extends BaseWsExceptionFilter { catch(exception: WsException | HttpException, host: ArgumentsHost) { const client = host.switchToWs().getClient() as WebSocket; const data = host.switchToWs().getData(); const error = exception instanceof WsException ? exception.getError() : exception.getResponse(); const details = error instanceof Object ? { ...error } : { message: error }; client.send(JSON.stringify({ event: "error", data: { id: (client as any).id, rid: data.rid, ...details } })); } }

Bastante seguro de que extends BaseWsExceptionFilter es redundante ya que no usé nada de esa clase. Y luego lo apliqué a mi puerta de enlace:

 @WebSocketGateway() @UseFilters(WebsocketExceptionsFilter) @UsePipes(new ValidationPipe({ transform: true })) export class FeedGateway implements OnGatewayConnection, OnGatewayDisconnect { }

Esto me ayudó a recibir el siguiente error:

 {"event":"error","data":{"id":"7a784ce568767a1016090c6a","rid":"connect","statusCode":400,"message":["language must be a valid enum value"],"error":"Bad Request"}}
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda