Bee*_*ice 6 websocket nestjs ws nestjs-gateways
我正在努力在 NestJS 7 中实现 Websocket 网关,如文档中所示。我使用 WS 适配器。
const app = await NestFactory.create(ApplicationModule);
app.useWebSocketAdapter(new WsAdapter(app));
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是网关接受连接,无论 url 是什么。例如,如果我像这样定义我的网关:
@WebSocketGateway(8080, {namespace: '/v3'}
export class MyGateway {}
Run Code Online (Sandbox Code Playgroud)
handleConnection然后,无论客户端请求的路径如何,都会触发该网关:
ws://localhost:8080/some-other-path
Run Code Online (Sandbox Code Playgroud)
不幸的是,这意味着所有客户端都连接到每个网关。命名空间选项仅适用于 socket.io 适配器吗?
您需要指定该path选项:
@WebSocketGateway(8080, {path: '/v3'}
Run Code Online (Sandbox Code Playgroud)
然后您可以连接:
const socket = new WebSocket('ws://localhost:8080/v3');
Run Code Online (Sandbox Code Playgroud)
平台ws不支持命名空间。这是 的一个特点socket.io。
参考:https://github.com/nestjs/nest/issues/4968#issuecomment-772494179
| 归档时间: |
|
| 查看次数: |
7100 次 |
| 最近记录: |