1

我正在尝试在 NestJS 中创建一个响应多个路径的 websockets 网关。这是一项要求,因为我正在尝试构建的内容将替换现有系统。我使用 WsAdapter 作为底层适配器。

websockets 路径可以用slugs(例如/ws/:key)或正则表达式来表示。然而,WebSocketGateway 装饰器只接受单个字符串并且不识别这样的 slug。

import { OnGatewayInit, SubscribeMessage, WebSocketGateway } from '@nestjs/websockets';
import { Logger } from '@nestjs/common';

@WebSocketGateway({path: '/ws/:key'})  // FIXME: ":key" should be treated as a slug here
export class ManagementGateway implements OnGatewayInit {
  private readonly logger = new Logger(ManagementGateway.name, false);

  afterInit(server: any): any {
    this.logger.debug('Websockets gateway initialized');
  }

  @SubscribeMessage('ctl')
  handle(client: any, data: unknown): void {
    this.logger.debug('ctl');
    // TODO
  }
}

我要替换的以前的旧实现使用ws,express和基于正则表达式的路径匹配来执行此操作。

任何提示或指针将不胜感激。

4

0 回答 0