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')