微信硬體平臺(七) 裝置控制控制面板-網頁sokect-mqtt長連線
給微信硬體裝置新增我們自己的控制面板。
主要問題:
1 要保證長連線,這樣面板可以實時互動陰間裝置,http一次性的連線模式通訊不行。
面板必須是網頁化的,網頁就可以操作互動。不用APP和小程式。
2 長連線需要websocket技術,可以保證長連線。
3 websocket技術雖然保證長連線,但是使用者和裝置管理這個大後臺需要個總管。 直接上MQTT伺服器省去各種管理,一個裝置對應一個通訊話題,而且擁有websocket介面。
4 自己的伺服器必須單獨開一個php後臺服務,2個小時請求一次微信token。
當裝置需要直接主動發訊息給使用者的時候, 利用token呼叫如下幾個微信API
- 獲取裝置主人open_ID : 查詢裝置繫結的是誰
- 藉助公眾號給指定使用者(一般是主人)推送訊息 。 例如警報訊息,使用者此時沒有開啟網頁在實時控制裝置, 可能多個人都綁定了,都需要傳送。
原本想著給微信雲全部代管上面所有流程,然而它的硬體直連SDK都被封裝了,根本不知道呼叫微信的什麼API通訊。
而且考慮到後期肯定收費(用人家伺服器),。
1 修改控制面板連結
2 控制介面實現
參看:http://www.hivemq.com/demos/websocket-client/
下載這個網頁,放在你伺服器上填寫的地址,這是一個MQTT網頁端控制介面,用來除錯。
連結:https://pan.baidu.com/s/1CxHc-nc3dfFyaToce_xFSQ
提取碼:v2wd
2-1 網頁前端。有個好臉蛋, 自己根據需求改,空調的,燈的。
2-2 網頁後面需要建立 websocket,和mqtt伺服器通訊。
通訊的時候,一個裝置ID對應兩個個MQTT通訊話題
接收話題 使用者ID/裝置ID/r
傳送話題 使用者ID/裝置ID/s
(裝置ID在使用者點選裝置欄-開啟裝置的時候,一併送到自己的伺服器url了,自己的伺服器接收到以後拿出來,用於生成網頁返回給使用者。)
我的微信已經綁定了三個裝置
點選裝置
自己的伺服器接收到這個請求後,寫個php服務,拿出裝置ID,用於生成網頁。
使用者開啟控制頁面,傳送訊息和接收訊息。
事實上,相當於返回一個mqtt的網頁通訊控制端。(代替APP和小程式)
好了,通訊打通了,接下來需要美化介面。
同時,自動根據裝置ID填入引數,生成MqTT連結。
最原始的MQTT網頁客戶端控制,在此基礎上修改。
入手js大坑瞭解下。
直接右鍵下載這個網頁,修改
1 訂閱按鈕處要修改,
點選訂閱本應該出現
但是部署在自己的伺服器上就跳出去了別的網站。
檢視程式碼
data就是這個跳出來的選擇框,本應該業內跳轉到這
但是在 href= 後面原來還加了原網址的的URL, 直接刪了,保留 #data。
--問題解決參考1-----------------------------------------------------------------------------------------------------------------------------------------
-問題解決參考2--------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------
自己MQTT伺服器自帶的網頁控制(找不到這個原始檔)
還有一個版本,好像是日本網友寫的,然而無法進行使用者賬號密碼自定義寫入,連線不上我開啟認證的MQTT伺服器,捨棄了。