【发布时间】:2016-12-21 03:42:57
【问题描述】:
当我在没有 io.emit() 的情况下调用 emit 时,所有连接的客户端都会收到您所期望的消息。但是,当尝试使用 io.to(socket.id).emit() 向默认房间发送消息时,客户端不会收到消息。
参考默认房间文档 http://socket.io/docs/rooms-and-namespaces/#default-room
使用nodejsv4.2.6
客户:
var socket = io();
socket.on('connect', function() {
$.ajax({
url: '/some-path',
type: 'POST',
data: {socket_id: socket.id},
success: function(data) {
console.log(data);
}
});
});
服务器:
app.post('/some-path', function(req, res) {
var socketID = req.body.socket_id;
io.to(socketID).emit('message', {'message': socketID});
res.end(socketID);
});
【问题讨论】:
-
请出示相关代码。正确完成后,发送到房间在 socket.io 中工作得很好,很明显这必须与您的代码有关。关于代码的问题必须包括相关代码。如果您不包含代码,我们如何知道您在代码中做错了什么?
-
谢谢@jfriend00,我认为你的建议会对我的发现产生很大的影响。