我是網絡開發新手,我想做網頁遠程控制我的樹莓派。在樹莓上我連接了幾個傳感器,並且可以通過在192.168.1.100:9997上發送請求來獲取數據。有用Python編寫的代碼。例如,如果我嘗試使用Putty獲取數據,那麼一切正常。現在我想通過我的網頁建立TCP連接來讀取數據。我搜索了幾天,發現這可以通過創建Websockets來實現。有很多工具,我發現最多的是Node.js.據我所知Node.js可以創建Websockets,它也可以提供網頁(而不是Appache)?從Raspberry PI通過Websocket獲取數據到Web頁面?
例如,我正在運行此Websocket服務器,僅用於從「server.js」中的RPi讀取數據。現在我不知道如何從「server.js」獲取這些數據到我的.html文件中?我沒有找到任何非常基本的例子。我可以通過數據庫獲取數據,但這不是我想要的。我也想從我的網頁發送請求到Rpi,然後閱讀答案。
我希望你能理解我的問題。如果你能指出我一些很好的例子,或者告訴我該怎麼做,我會很高興。如果可能的話,我想用Javasrcipt做到這一點。
預先感謝您。
編輯:我現在用Node.js工作的例子,但我不知道如何實現這個到我的網頁,用戶可以觸發這部分代碼從.html,並顯示應答數據到.html網站頁。我希望這有幫助。
var client = new net.Socket();
client.connect(9997, '192.168.1.100', function() {
console.log('Connected');
//sending request
//THIS SHOULD BE TRIGGERED FROM HTML onclick for example
client.write('$DATA');
});
client.on('data', function(data) {
console.log('Received: ' + data);
//THIS DATA SHOULD BE SHOWN IN HTML for example
//client.destroy(); // kill client after server's response
});
client.on('close', function() {
console.log('Connection closed');
});
您可以在Python代碼之上構建一個Web API。 –
嗯...我想可能會有一些混淆 - Websockets是一個特定的Web協議,如HTTP或SMTP或IMAP ...您的'192.168.1.100:9997'服務是否支持Websockets協議?它使用HTTP嗎?它是否在原始TCP/IP連接上使用自定義協議? ...需要更多數據才能幫助你。 – Myst
是的,可能有很多新的終端......我的服務是TCP服務器,他接收和發送ASCII數據。例如我創建TCP客戶端,在192.168.1.100:9997上連接,並根據請求$ DATA獲得響應$ TEMP,123,HUMIDITY,234等。我只需要一些mechanisem,我將能夠與我的這項服務進行通信網頁。到目前爲止,我正在使用Apache服務爲main.php頁面我已經得到MySql數據庫實施。我找到了使用Node.js作爲異步TCP clinets的示例。我想從.html發送請求中的onClick事件並在.html中顯示收到的數據。希望你能理解。 – anze87