NestJS + Socket.io:没有收到消息

Posted

技术标签:

【中文标题】NestJS + Socket.io:没有收到消息【英文标题】:NestJS + Socket.io: No messages received 【发布时间】:2020-10-19 22:01:57 【问题描述】:

我正在使用 socketio 开发 NestJS 后端。

很遗憾,我遇到了问题。我在服务器上运行这段代码:

import  WebSocketGateway, WebSocketServer, SubscribeMessage, OnGatewayConnection, OnGatewayDisconnect  from '@nestjs/websockets';
import  Socket, Server  from 'socket.io';
import  Logger  from '@nestjs/common';
@WebSocketGateway()
export class SettingsGateway implements OnGatewayConnection, OnGatewayDisconnect 
    @WebSocketServer() server;
    users: number = 0;

    async handleConnection()
        Logger.log("Hello! New user!")
    

    async handleDisconnect()
    
    @SubscribeMessage('settingsChange')
    handleMessage(client:Socket, payload:string):void
        Logger.log("received message");
    

然后得到“你好!新用户!”消息,但服务器从不显示“收到的消息”字符串。在客户端,我使用这个发送一条消息:

console.log("Emit stage activated")
this.socket.emit('settingsChange',setting) 

并获取“激活发射阶段”控制台日志,这样我就知道该命令至少正在运行。

有人知道发生了什么吗?感谢您的帮助!

另外:socket.io 和 socket.io-client 都是 v6.9.0

【问题讨论】:

【参考方案1】:

找到解决方案:前端应用程序连接到后端的 API 挂钩,而不是实际的后端,导致连接良好,但不是通过 websockets。

【讨论】:

以上是关于NestJS + Socket.io:没有收到消息的主要内容,如果未能解决你的问题,请参考以下文章

在 NestJs 中使用 Socket IO 加入和发射到房间

如何使用 nestjs 和 socket.io 创建房间

Socket.io 客户端未收到事件

从 socket.io 收到消息时从客户端播放音频 - node.js

在 NestJS 中连接后,Socket.io 客户端正在断开连接

socket.io - 如何访问未处理的消息?