2017-05-15 40 views
0

我正在開發一個Web應用程序來控制智能家居設備。我正在使用Bluemix IoT平臺進行設計,但我遇到了一些我無法解決的問題。從網站的index.html文件中的app.js讀取變量Bluemix應用程序

我正在讀取我的app.js文件中的變量(currentRelay1),該文件是直接從物聯網設備讀取的。

var Client = require('ibmiotf'); 

var appClientConfig = { 
    "org" : "rmpr4l", 
    "id" : "dineriot", 
    "domain": "internetofthings.ibmcloud.com", 
    "auth-key" : "a-rmps4l-0uegqtl8mec", 
    "auth-token" : "[email protected]" 
}; 

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文件繪製的圖表。

我該怎麼做?

回答

0

由於這是您的服務器端代碼,您將需要將此數據發送到您的頁面。或者頁面從服務器請求它。不幸的是,這是一個非常大的話題:)

您可以設置將與此應對像這樣的服務器:

server.js //「數據」是你變

var http = require('http'); 

http.createServer(function (req, res) { 
    res.writeHead(200, { 'Content-Type': 'text/html' }); 
    res.write("data: " + data + '\n\n'); 
    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.html https://www.w3schools.com/xml/xml_http.asp

相關問題