我无法连接到NestJS WebSocket网关上的WebSocket版本

gopyfrb3  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(248)

根据NestJS documentationan example on github实现了轻量级的WebSocket示例
根据日志,我看到网关已加载、注册和订阅。

[Nest] 113767  - 10/31/2023, 9:43:49 PM     LOG [WebSocketsController] MigrationGateway subscribed to the "message" message

字符串
应用程序正在端口3000上运行

[Nest] 113767  - 10/31/2023, 9:43:49 PM     LOG [NestApplication] Nest application successfully started
Application is running on: http://[::1]:3000


网关由decorator注册,不需要额外的选项

@WebSocketGateway()
export class MigrationGateway implements OnGatewayConnection, OnGatewayDisconnect {


我从控制台连接到套接字并接收。

const socket = new WebSocket('ws://localhost:3000');
WebSocket connection to 'ws://localhost:3000/' failed:

的字符串
我也试过了。

wscat -c ws://localhost:3000
error: socket hang up


我在服务器日志中没有看到任何问题。它就像需要设置一样。
我尚未检查socket.io客户端。

import io from 'socket.io-client';
const socket = io('http://localhost:3000');


但我不认为这是一个问题。
建议我去哪里调查这个问题。
祝你好运

nkkqxpd9

nkkqxpd91#

如果你想在NestJS中使用ws,你需要使用@nestjs/platform-ws中的WsAdapter。默认情况下,按照文档,Nest使用@nestjs/platform-socket.io中的SocketIoAdapter,它需要使用http://localhost:3000中的socket.io-client包连接,而不是ws://localhost:3000

相关问题