好了,我有我的server.js
var express = require("express"),
app = express(),
bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/'));
app.post('/message', function(req, res) {
var jsonData = req.body;
if (jsonData.hasOwnProperty('phone1')) {
console.log("Phone 1 is connected to", jsonData.phone1.connection,
"and has a downlink speed of", jsonData.phone1.dl, "Mbps");
} else
if (jsonData.hasOwnProperty('phone2')) {
console.log("Phone 2 is connected to", jsonData.phone2.connection,
"and has a downlink speed of", jsonData.phone2.dl, "Mbps");
}
});
var port = 1337;
app.listen(port);
console.log("Running at Port " + port);
正如你看到我希望在服务器获取的东西贴在/消息做的东西。 我可以CONSOLE.LOG东西,是的,但我想改变网页此服务器服务于事。 该POST请求从另一台服务器来。 该服务器只介绍他们。
我如何能做到这一点,而不必更新网页?
我还使用在客户端AngularJS,所以任何方式对客户端拿起JSON数据将是很好。
我希望在我Highcharts仪表和图表呈现的数据,但一个页面元素(例如,在一个简单的文本更新<p id="example">
会为这个问题的答案做就好了。
我知道我能得到jQuery来节点,但我仍然缺乏窗口元素操纵提供的数据。 NW.js可能会做正是我想要的,我还没有尝试过还是不过它,但我怀疑有可能是另一种解决这个问题。
如果你想要把新的内容给客户端(相反流向客户端从服务器请求数据)的WebSockets是一个选项(参见http://socket.io/为了一个共同的库)。
或者,您可以在客户端设置长轮询。 这是使用JavaScript来定期“轮询”使用信息的服务器setInterval
或类似的方法。
因为我只需要从服务器向客户端发送数据时,我结束了与服务器发送事件(SSE)和我的代码看起来像这样在服务器端:
var mypage;
app.get('/connect', function(req, res){
res.writeHead(200, {
'Connection': 'keep-alive',
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache'
});
mypage = res;
});
app.post('/message', function(req, res) {
if (mypage !== undefined) {
mypage.write('data: '+ JSON.stringify( req.body ) +'\n\n');
}
});
并在客户端:
$(function () {
var server = new EventSource('/connect'),
point1 = $("#gauge1").highcharts().series[0].points[0],
point2 = $("#gauge2").highcharts().series[0].points[0];
server.onmessage = function(e) {
var jsonData = JSON.parse(e.data);
if (jsonData.hasOwnProperty('phone1')) {
point1.update(parseInt(jsonData.phone1.dl));
if (jsonData.phone1.connection === "3G") {
/* extra functionality */
} else {
/* extra functionality */
}
} else
if (jsonData.hasOwnProperty('phone2')) {
point2.update(parseInt(jsonData.phone2.dl));
if (jsonData.phone2.connection === "3G") {
/* extra functionality */
} else {
/* extra functionality */
}
}
};
});
我得到了额外的帮助, 我的其他问题有关上证所的数据格式
节点的Webkit没有回答我的问题,因为它不会在浏览器中运行。
我仍然有一些问题,收到了许多文章。 我生成每个0.5sa岗位信息,但我不断收到5封邮件则没有2分钟,然后再5级的消息。 我不知道为什么会发生的事情,但它不是这个问题的一部分,所以我会后有关的另一个问题。