在此代码中,程序通过使用Node.js从Linux服务器获取正常运行时间详细信息。
socket.emit("getuptime",{host:"192.168.*.*"});
$("#result").html("loading....");
socket.on("getuptimeresult",function(data){
console.log("result = "+data);
});
这里,第二行代码应该只执行完全完成的第一行代码。我不确定何时从节点获得结果。所以我想在socket发出代码后立即得到它。有可能吗?
答案 0 :(得分:0)
你的意思是这样的:
let data = {host:"192.168.*.*"};
socket.emit("getuptime", data);
console.log(data);
如果您想在发光后立即使用数据,那么就是这样做的。如果您有其他意思,请更新您的问题。
<强>更新强>
如果您想要getuptimeresult
中的数据,则必须使用该事件名称&amp;此外,您必须先注册该事件的回调,然后才能发出该事件的数据。如下所示:
socket.on('getuptimeresult', function(data) {console.log(data);});
socket.emit('getuptimeresult', {host:"192.168.*.*"});
更新2:
根据您更新的相关代码,
我想,从客户端(浏览器),您使用getuptime
事件&amp;在getuptimeresult
事件中获得结果。如果是的话,
客户端/浏览器:
socket.emit("getuptime",{host:"192.168.*.*"});
$("#result").html("loading....");
socket.on("getuptimeresult",function(data){
var html = convertDataToHTML(data); // you have to change this function for your case.
$("#result").html(html);
});
服务器:
socket.on("getuptime",function(data){
var detail = getUptimeDetailsForHost(data); // you have to change this function for your case.
socket.emit('getuptimeresult', details);
});
PS:
如果您使用的是socket.io,则无需getuptimeresult
事件&amp;你可以使用回调。例如:
客户端/浏览器:
$("#result").html("loading....");
socket.emit("getuptime", {host:"192.168.*.*"}, function(data){
var html = convertDataToHTML(data); // you have to change this function for your case.
$("#result").html(html);
});
服务器:
socket.on("getuptime", function(data, callback){ // <-- notice callback parameter here.
var detail = getUptimeDetailsForHost(data); // you have to change this function for your case.
callback(details);
});