Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 存储在变量not working中时,Socket.io向Socket.id发出信号_Javascript_Jquery_Node.js_Socket.io - Fatal编程技术网

Javascript 存储在变量not working中时,Socket.io向Socket.id发出信号

Javascript 存储在变量not working中时,Socket.io向Socket.id发出信号,javascript,jquery,node.js,socket.io,Javascript,Jquery,Node.js,Socket.io,如中所示,可以使用 io.to(socketid.emit('message','仅供您观看'); 在我的node.js应用程序中,我尝试做同样的事情。基本上,当用户提交另一个socket.id时,node.js后端将发送给该特定socket id的数据。虽然前端将请求正确地提交给后端,但当我尝试将数据发送给该id时,它不会通过。代码的“断开”部分如下所示: app.post('/send',函数(req,res){ var post_body=所需body; var id=(JSON.str

如中所示,可以使用

io.to(socketid.emit('message','仅供您观看');
在我的node.js应用程序中,我尝试做同样的事情。基本上,当用户提交另一个socket.id时,node.js后端将发送给该特定socket id的数据。虽然前端将请求正确地提交给后端,但当我尝试将数据发送给该id时,它不会通过。代码的“断开”部分如下所示:

app.post('/send',函数(req,res){
var post_body=所需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(用户);
io.to(id.emit('testerEvent',{description:'A custom event named testerEvent!'});
物质状态(200);
});
它对已发布的数据做出响应(数据已正确发布)。客户端侦听事件“testerEvent”,如下所示:

socket.on('testerEvent',函数(数据){document.write(数据.description)});
当仅使用io.emit而不是io.to(id.emit)触发事件testerEvent时,它工作正常。
如果您能在这方面提供帮助,我将不胜感激,因为我刚刚开始学习node和socket.io

io.to(id)
将向加入聊天室的客户端发送消息,因此如果您尚未将任何客户端加入聊天室,您将不会在客户端上收到消息。要解决此问题,当您从socket.io收到客户端套接字时,可以尝试执行
client.join(id)

谢谢!有没有办法在不使用文件室的情况下将其发送到某个socket.client.id?我检查了文档,默认情况下它应该加入这个文件室。您确定传递了正确的ID吗?该ID是通过myId=socket.io.engine.ID从客户端获取的,然后通过post请求将其传递给服务器。在另一个选项卡上,使用io.to(生成和发送的id).emit。。。从服务器到第一个选项卡不会产生任何结果。如果要向客户端发送消息,则需要使用
socket.id
,此
socket
应该是客户端的套接字。这里你可以看到一个例子。