当存储在变量中时,Socket.io正在向Socket.id发射



如Socket.IO 1.0中向特定ID发送消息中所述,可以使用向特定客户端ID发送消息

io.to(socketid).emit('message', 'for your eyes only');

在我的node.js应用程序中,我正在尝试做同样的事情。基本上,当用户提交另一个socket.id时,node.js后端将发送给该特定socket id的数据。虽然前端将请求正确提交给后端,但当我试图将数据发送给该id时,它不会通过。";破碎的";部分代码如下所示:

app.post('/send', function (req, res) {
var post_body = req.body;
var id = (JSON.stringify(post_body.id)).split('"')[1].split('"')[0];
var payload = JSON.stringify(post_body.payload);
var user = JSON.stringify(post_body.user);

console.log(id); 
console.log(payload);
console.log(user);   
io.to(id).emit('testerEvent', { description: 'A custom event named testerEvent!'});
res.status(200);
});

其响应于发布的数据(数据被正确发布(。客户端侦听事件"testerEvent",如下所示:

socket.on('testerEvent', function(data){document.write(data.description)});

当事件testerEvent只使用io.emit而不使用io.to(id(.emit激发时,它可以正常工作。我很感激在这方面的任何帮助,因为我才刚刚开始学习node和socket.io

io.to(id)将向加入文件室的客户端发送消息,因此,如果您没有将任何客户端加入文件室,则不会在客户端上收到消息。为了解决这个问题,当您从socket.io收到客户端套接字时,您可以尝试执行client.join(id)

最新更新