websocket - 如何使用nestjs向单个客户端广播消息?
问题描述
我正在使用nestjs websockets 为多供应商应用程序构建聊天应用程序,但是每当我从服务器向客户端广播/发送消息时,它都会被广播给所有客户端。是否可以向单个客户端发送消息?以及如何做到这一点?
export class ChatGateway implements OnGatewayInit {
constructor(private conversationService: ConversationService) {}
@WebSocketServer()
server: Server;
@SubscribeMessage('sendMessage')
async handleMessage(
client: Socket,
payload: {
senderProfileId: ID;
recieverProfileId: ID;
conversationId: ID;
message: string;
createdAt: Date;
},
) {
await this.conversationService.createMessage({
message: payload.message,
createdAt: payload.createdAt,
senderProfileId: payload.senderProfileId as string,
conversationId: payload.conversationId as string,
});
// Want to emit this to a single client
this.server.emit('recieveMessage', payload);
}
}
目前,我正在使用recieverProfileId来确保消息是否显示给正确的接收者。
解决方案
推荐阅读
- javascript - 带有 mapbox 的传单 - 设置默认语言
- azure - Azure DevOps Pipeline 中的 Terraform 获取订阅超时
- macos - Quasar Electron 构建无法在具有 arm64 架构的 M1 mac mini 上运行
- powershell - 开始睡眠意外行为
- excel - 在Excel VBA上用引号打印单元格值的写入函数
- python - 如何读取文本文件中的特定行?
- javascript - 如何使用护照本地猫鼬更改密码?
- javascript - Jquery/JS - 根据值属性查找输入并触发点击
- android - Android Studio EditText 不能为空错误
- javascript - JS:我需要 3 个标题才能点击/标题变成蓝色。事件监听器问题