【发布时间】: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
【问题讨论】: