1. 程式人生 > >mqtt實現跨平臺跨應用通訊

mqtt實現跨平臺跨應用通訊

介紹

最近物聯網應用一直很火,也打算做一些這方面的嘗試,就邊學邊做在家花了2天時間做了一個簡單demo,功能很簡單,使用emq x 作為mqtt broker,用python寫了一個定時抓取主機CPU利用併發布訊息,用微信小程式和VUE客戶段訂閱訊息並實時監控CPU使用情況,場景非常的簡單,就是一個訂閱/分發的過程,使用任何的MQ產品都能實現,但不同的mqtt協議相對與其它的mq產品更輕量級,同時也是專為物聯網應用設計的,所以用起來更方便.隨便也把過程遇到的一些問題說明一下,也可以讓想了解和嘗試的小夥伴有一個參考.

 

先看一下做出來的效果

總之使用mqtt協議做起來就是快,簡單!

開發環境準備

這次demo使用的大多陣列件都是國產開源的產品,國產軟體進步非常大.

開發工具:vs code,微信小程式開發工具

執行環境:python 微信小程式 ,vue

元件:

  mqtt broker(emqx broker) 基礎版免費開源 https://www.emqx.io/ 非常好用,功能也非常強大,網上都能找到很完善的文件

  antv/f2 https://f2.antv.vision/en 圖表元件,echarts感覺千年不變的樣式有點lower,還是阿里產品好,雖然引數都差不多,但是還是有差別,很難一個人都能完全掌握,要做圖表我就選antv了

       mqttjs https://github.com/mqttjs  js mqtt 客戶端

       paho-mqtt  安裝 命令 conda install -c sci-bots paho-mqtt mqtt python 客戶端

  apscheduler 安裝 命令 conda install -c conda-forge apscheduler python  客戶端

原始碼

  程式碼就不貼了,可以自己分去下載

     https://github.com/neozhu/mqtt_tutorial   https://github.com/neozhu/mqtt_tutorial.git

問題&解決

 配置emq x服務端 mqtt broker,為了與微信小程式通訊,必須開啟SSL和wss,也就是這裡必須要配置證書,如果用自簽名的證書可能會比較麻煩,存在根證書信任問題,我這邊是用騰訊雲主機並申請了域名和證書,所以配置起來很簡單,如果沒有的小朋友一定要注意自簽名證書生成規則    微信小程式中應用mqttjs不能使用npm install mqtt -save 網上找了很多還是沒能解決,所以我是直接從網上下載後手工載入使用的,如果你可以用npm安裝的請告知一下,謝謝. 但在vue專案中就沒問題    微信小程式中連線mqtt 必須使用 wxs字首對應的就是wss,但微信小程式就不允許用wss或是ws,所以要測試,你的mqtt broker必須開啟ssl    微信小程式中使用antv/f2元件必須安裝 npm install @antv/wx-f2 --save  https://github.com/antvis/wx-f2     VUE中使用antv/f 初始元件的必須寫在 mounted() 方法下,寫其他地方也會報錯

小小的總結

   mqtt在多種終端之間實現實時通訊確實非常方便,特別是物聯網這塊.

   作為一名.net程式設計師,開發VUE,微信小程式確實有點力不從心,特別是對UI佈局調整,一個頁面有70%-80%時間花費在了頁面佈局上.

   pyhon確實好用,資源感覺比c#還多,但還是不熟練,特別是模組化開發還真不知道如何是好.

  開來2020年必須要轉型做全棧開發了.

   

  

&n