我尝试使用nestjs websocket基于条件发送异常,尝试使用
- 抛出新的WsException("无效数据");**
但不发送任何异常
下面是示例代码
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 }));
}
}
我使用angular创建连接这里是代码片段
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);
}
}
你帮我解决一下
2条答案
按热度按时间l7mqbcuq1#
我也遇到过同样的问题。我相信这个问题是与BaseWsExceptionFilter和它对soket.emit的使用有关的。我提出了以下问题:
我很确定
extends BaseWsExceptionFilter
是多余的,因为我没有使用该类的任何东西,然后我将它应用到我的网关:这帮助我收到以下错误:
dgsult0t2#
运行正常,但需要更多测试。如果发现错误,请报告。
use: