NestJS Gateways: путь с ярлыками
Я пытаюсь создать шлюз веб-сокетов в NestJS, который отвечает на несколько путей. Это требование, так как то, что я пытаюсь построить, заменит существующую систему. Я использую WsAdapter в качестве основного адаптера для этого.
Пути веб-сокетов могут быть выражены слагами (например,
/ws/:key
) или регулярные выражения. Однако декоратор WebSocketGateway принимает только одну строку и не распознает ярлыки как таковые.
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
и сопоставление путей на основе регулярных выражений.
Приветствуются любые подсказки или указатели.