繁体   English   中英

Socket.IO将数据发送到我自己的房间

[英]Socket.IO emit data into a room to myself

我正在构建一个聊天应用程序,我想在其中启动两个用户之间的最后一条消息。

这是我在前端执行的操作,因此从数据库中加载旧的messageList:

socket.emit('get messageList', data);

在后端,我将消息加载到messages然后尝试将它们发回。 我不想broadcast.emit因为我想在会话中而不是在聊天伙伴中加载数据。

socket.in(roomId).emit('send messageList', messages);

当我执行此代码时,聊天伙伴的messageList会刷新。 基本上与

socket.in(roomId).broadcast.emit('send messageList', messages);

在我布置房间之前

socket.emit('send messageList', messages);

会按照我的期望更新我的列表。 但是由于我将代码与房间一起使用,因此不再起作用。

我的问题:

  • 这是为什么?
  • 是否可以使用socket.io将数据从后端发送回客户端?
  • 还是我做错了什么?

我将在评论中做出评论,因为这似乎对您有用。

如果您只是想响应发送请求的客户端,则只需将socket.emit()返回到请求的套接字即可。 您只是想回应发件人,所以您不会做其他任何事情,仅因为正在使用聊天室。 无论聊天室使用情况如何,响应都会转到要求它的套接字。

要发送到单个客户端,您只需发送到该客户端的套接字。 如果要发送给该房间中的所有客户端或房间中除一个客户端之外的所有客户端,则仅使用聊天室来帮助发送。

socket.nsp.to(room).emit('room_message','hello world')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM