如何在应用程序启动时为Web套接字设置名称空间和端口号

时间:2019-07-25 19:09:28

标签: websocket nestjs

所以我想在配置文件端口号和webSockets的命名空间中进行设置。如果我可以在应用程序启动时加载该配置,然后为我的webSocket服务器设置该数据,那就太好了。

因此,改为像这样为Web套接字编写配置:

@WebSocketGateway(81, 'test')

我想在应用程序启动时对其进行动态设置。

所以我尝试了这个:

@WebSocketGateway()
export class StatusMonitorGateway implements OnGatewayConnection {
  @WebSocketServer()
  server;

  public static forRoot(portNumber: number, namespace: string) {
    Reflect.defineMetadata(NAMESPACE_METADATA, namespace, StatusMonitorGateway);
    Reflect.defineMetadata(PORT_METADATA, portNumber, StatusMonitorGateway);
    return StatusMonitorGateway;
  }
}

在模块中:

export class StatusMonitorModule {

  static setUp(config: StatusMonitorConfiguration): DynamicModule {
    return {
      module: StatusMonitorModule,
      providers: [
        StatusMonitorGateway.forRoot(config.port, config.namespace || ''),
      ]
    };
  }
}

但这不起作用。 webSocket上的命名空间仍然是'',而不是我期望的'test'

有什么想法吗?

0 个答案:

没有答案