ウェブサイト検索

javascript - WebSocketGatewayでのWsExceptionが動作しない


私はNestJsで遊んでいて、一つの問題で行き詰まっています。WebSocketゲートウェイで例外を投げることができません。

すべてはこのドキュメントのページに従っています。

私は含めるように試みました

@UseFilters(new BaseWsExceptionFilter())

でも…助けにはならなかった。

import {
    SubscribeMessage,
    WebSocketGateway,
    WebSocketServer, WsException,
} from '@nestjs/websockets';
import { Client, Server } from 'socket.io';

@WebSocketGateway()
export class EventsGateway {
    @WebSocketServer()
    server: Server;

    @SubscribeMessage('exception')
    exception(client: Client, data: number) {
        throw new WsException('Invalid credentials.');
    }
}

そして、こんな感じのものを持っていました…

/home/innistry/Projects/nest-likbez/node_modules/rxjs/internal/util/hostReportError.js:4
[0]     setTimeout(function () { throw err; }, 0);
[0]                              ^
[0] 
[0] TypeError: host.setType is not a function
[0]     at WsProxy.handleError (/home/innistry/Projects/nest-likbez/node_modules/@nestjs/websockets/context/ws-proxy.js:26:14)
[0]     at EventsGateway.<anonymous> (/home/innistry/Projects/nest-likbez/node_modules/@nestjs/websockets/context/ws-proxy.js:20:22)
[0]     at process._tickCallback (internal/process/next_tick.js:68:7)

回答 #1

これは、以前のバージョンのバグが原因で動作しません。依存関係を最新バージョンに更新してください。例えば、npm update や yarn upgrade などです。