1. 程式人生 > >微信硬體平臺(七) 裝置控制控制面板-網頁sokect-mqtt長連線

微信硬體平臺(七) 裝置控制控制面板-網頁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伺服器,捨棄了。