[英]NestJS WebSocketGateway does not initialize
根据 NestJS 文档,我实现了 websockets 网关并在AppModule
内部提供它。 服务器正常启动,我可以通过 http 成功提供静态资产。 但是我根本无法运行 websockets,ws 服务器在ws://localhost:3333
处不可用,并且afterInit
没有执行afterInit
函数。 即使在我定义@SubscribeMessage
。
网关实现为
@WebSocketGateway()
export class SocketGateway implements OnGatewayInit {
afterInit() {
console.log('Gateway initialized');
}
}
AppModule 正确提供网关
@Module({
providers: [SocketGateway]
})
export class AppModule {}
这是引导程序实现
export async function bootstrap() {
let app = await NestFactory.create(AppModule);
await app.listen(process.env.port || 3333, () => {
console.log(`Listening at http://localhost:${port}`);
});
}
bootstrap();
我的依赖是
"socket.io-client": "^2.2.0",
"@nestjs/common": "5.5.0",
"@nestjs/core": "5.5.0",
"@nestjs/platform-socket.io": "^6.1.0",
"@nestjs/websockets": "^6.1.0"
也许你直接看到了问题。 谢谢你的帮助,加油!
在您的项目中,nest 的主要版本 v5 和 v6 是混合的。 不保证不同的主要版本可以正确互操作。 将所有依赖项更新到 nest v6; 您可以查看迁移指南以获取有关更新的其他信息。
运行$ npm i @nestjs/core@latest @nestjs/common@latest
当您安装新的依赖项时,请注意来自 npm 的对等依赖项警告,如下所示:
npm WARN @nestjs/websockets@6.1.0 requires a peer of @nestjs/common@^6.0.0 but none is installed.
You must install peer dependencies yourself.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.