2017-01-16 52 views
0

我使用nodeJs和express,express-handlebars和mqtt軟件包。網站上使用nodejs和mqtt的實時內容

我最近試圖更新一個表格,其中顯示了內外當前溫度的內容。這張表只是網站的一部分,值得我們每秒鐘更新這個特定的頁面。 因此,對我來說,使用似乎不是正確的答案,也有損於設置設置並單擊鏈接的能力。

我已經嘗試過使用Query .load函數,它確實可行,但不能與express-handelbars一起正常工作。網站上顯示的內容不是通過MQTT傳輸到我的服務器,而是{{temperatureInside}}和{{temperatureOutside}}。

任何想法如何解決這個問題?

+0

當你說你想「升級」吧,你的意思是你希望它可以自動更新(如服務器通知變化的前端),或者你想將記錄添加到它(現在它有一個新的價值,所以它是「更新」) – Corbfon

+0

我希望它自動 – JayJay

回答

2

在那意味着你需要服務器所需的表自動更新的情況下,告訴前端有新的數據。這對標準的HTTP請求是不可能的,這就是爲什麼一些聰明人建立Websockets(WSS協議)。使用節點,我使用這個庫是socket.io

socket.io有一個需要進口都在前端代碼(告訴你的客戶如何通過WSS交談),並在節點側require d(npm install socket.io --save

從那裏,您可以設置您的服務器和客戶端都能理解的自定義事件。我會讓你閱讀文檔,但是socket.io肯定會爲你解決問題。我在很多類似的情況下使用過它。

+0

如何保存更新是socket.io實際上呢?我最近使用https ... – JayJay

+0

看到[這個答案](http://stackoverflow.com/questions/26791107/websockets-wss-on-http-vs-wss-on-https) – Corbfon

+0

幫了我很多。謝謝 – JayJay