我正在开发一个Web应用程序来控制智能家居设备。我正在使用 Bluemix IoT 平台设计它,但我遇到了一些无法解决的问题。
我正在读取app.js
文件中的变量(currentRelay1)
,该变量直接从 IoT 设备读取。
var Client = require('ibmiotf');
var appClientConfig = {
"org" : "rmpr4l",
"id" : "dineriot",
"domain": "internetofthings.ibmcloud.com",
"auth-key" : "a-rmps4l-0uegqtl8mec",
"auth-token" : "V8vB!?R3yES7dc@vtj"
};
var appClient = new Client.IotfApplication(appClientConfig);
appClient.connect();
appClient.on("connect", function () {
appClient.subscribeToDeviceEvents();
});
appClient.on("deviceEvent", function (deviceType, deviceId, eventType, format, payload) {
console.log("Device Event from :: "+deviceType+" : "+deviceId+" of event "+eventType+" with payload : "+payload);
var json = JSON.parse(payload);
currentRelay1 = json["C1"] * 1000;
currentRelay2 = json["C2"] * 1000;
});
现在,我想共享此变量以在index.html
文件中使用它来绘制图表。
我该怎么做?
由于这是您的服务器端代码,因此您需要将此数据发送到您的页面。或从服务器请求它的页面。不幸的是,这是一个非常大的话题:)
您可以设置一个服务器,该服务器将像这样响应:
服务器.js//"data" 是你的变量
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write("data: " + data + 'nn');
res.end();
}).listen(8000);
客户端.js//包含在您的.html文件中
<script>
function handler(e){
if (e.target.readyState == 4 && e.target.status == 200) {
//use "e.target.data" here
}
}
var r = new XMLHttpRequest();
r.open('GET', 'http://localhost:8000');
r.addEventListener(readystatechange, handler);
r.send();
</script>
延伸阅读:https://nodejs.org/api/http.htmlhttps://www.w3schools.com/xml/xml_http.asp