根据NestJS documentation和an 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');
型
但我不认为这是一个问题。
建议我去哪里调查这个问题。
祝你好运
1条答案
按热度按时间nkkqxpd91#
如果你想在NestJS中使用
ws
,你需要使用@nestjs/platform-ws
中的WsAdapter
。默认情况下,按照文档,Nest使用@nestjs/platform-socket.io
中的SocketIoAdapter
,它需要使用http://localhost:3000
中的socket.io-client
包连接,而不是ws://localhost:3000