Пользовательский WsExceptionFilter не перехватывает WsException - PullRequest
0 голосов
/ 20 сентября 2019

WsException не перехватывается.

Версия пакета обновлена.Существует package.json {"@ nestjs / common": "^ 6.0.0", "@ nestjs / core": "^ 6.0.0", "@ nestjs / platform-socket.io": "^ 6.6.7"," @ nestjs / websockets ":" ^ 6.6.7 "}

// game.gateway.ts
import {
  WebSocketGateway,
  SubscribeMessage,
  WsException,
  WsResponse,
  OnGatewayConnection,
} from '@nestjs/websockets';
import { SocketExceptionFilter } from '../../filters/socket-exception.filter';

@WebSocketGateway(10000)
export class GameGateway implements OnGatewayConnection {
  @SubscribeMessage('error')
  @UseFilters(new SocketExceptionFilter())
  handleError() {
    throw new WsException('ws exception error');
  }
}
// socket-exception.filter.ts
import { Catch, ArgumentsHost, WsExceptionFilter } from '@nestjs/common';
import { WsException } from '@nestjs/websockets';

@Catch(WsException)
export class SocketExceptionFilter implements WsExceptionFilter {
  catch(exception: WsException, host: ArgumentsHost) {
    const ctx = host.switchToWs();
    const client: Client = ctx.getClient();
    const data = ctx.getData();
    console.log(data);
    console.log(exception);
  }
}

При отправке сообщения об ошибке ничего не происходит.

...