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

我正在构build一个聊天应用程序,我想要加载两个用户之间的最后一条消息。

这是我在前端做什么,所以加载数据库中的旧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')