【问题标题】:Socket IO how to send message to one particular personSocket IO如何向一个特定的人发送消息
【发布时间】:2018-08-11 20:05:57
【问题描述】:

使用 SocketIO 基于 套接字.Id

在我浏览完文档后,唯一直接的方法就是使用

io.to(`${socket.id}`).emit("event name",{message:msg,from:socketId});

我实现了一个测试用例,它可以工作,但对我来说,困难的部分是如果一个人关闭浏览器,socketId 会发生变化,那么通知每个人发生变化的标准方法是什么 是否可以使用相同的 socketId 重新连接

所以请有经验的人告诉我这样做的直接方法是什么

【问题讨论】:

  • 是否要通知所有用户用户已离开聊天?
  • 您对我给出的答案有疑问吗?

标签: javascript node.js websocket socket.io


【解决方案1】:

您可以将人们加入房间。

io.on('connection', function(socket){
    socket.join('room_id');
});
//Use this on the server side.

因此,一旦有人发出声音,您就可以使用以下方式将他的消息广播给房间中的其他人(或私人聊天时的其他人):

socket.to('room_id').emit('Some Message');

因此,您可以使用用户的电子邮件 ID(或任何其他主键)创建唯一键,而不是使用套接字 ID 发送消息,并将他们加入他们的私人房间。

【讨论】:

  • Pranish 所以,为什么我对与房间的私人聊天感到困惑。假设 A 和 B 在那里,应该在什么基础上创建一个房间。应该由 A 或 B 创建房间,谁应该加入谁的房间所有这些都与 socketId 它的简单性非常混淆。您只需使用 userID 向用户发送消息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-06
  • 2013-01-03
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多