Note: Protobuf with MQTT

這幾天在寫實際的Protobuf + MQTT 的程式, 今天重新編了,  Paho C/C++ library 後, 在Windows上終於連到 broker.hivemq.com 這個公開用來測試用的Server, 目前看起來工作正常, 但是這讓我開始有一個疑慮, 如果用Protobuf這種序列化/反序列化的程式庫, 那是否會有那種隱含的安全問題?  應該只能用安全連線的通訊環境下吧? 不然光是處理檢查進來的Stream是否合法安全就搞不完了.

做Demo 還是可以用這種公開的Broker server, 實際商品化就必須採用login/password, 跟SSL的Server, 這樣的話MQTT本身的payload加不加密也就不重要了, 或是將message本身加密, 能正常解出的也代表是 Trusted ? 也應該是一種方式。

另外 hivemq 的Websocket for Browser 當message payload 不是用json/text格式的話,  應該是收不到訊息的, 不知道是底層就收不到還是上層 因為解不出 Text就是不會有反應, 所以早期開發如果要方便除錯採取json 還是一個比較快的方式

 

廣告

Note: About MQTT

本來上週末在看gRPC 想說先做單對單的設計展示之後上雲的可能性, 但是計畫趕不上變化, 老闆找了大老闆展示部門之前做的東西跟未來要做的東西後, 大老闆明顯想要的是直接上雲可以一步到位展示給終端客戶推廣的東西, 因此需要重新構思設計方向, 做了一下技術選擇, 應該還是MQTT比較合適, 而且目前有明確需要上雲的東西

目前看了一下主要就是Device 需要設計 publishes 的Topic 跟Payload, 還可以設計 subscribe topic, 讓遠端傳遞控制命令

找到一篇算是很不錯的基本文介紹 MQTT Topic and Payload Design Notes  還加上他有一篇 payload 加密文 How to Encrypt MQTT Payloads with Python – Example Code 剛好都是我能做的, 剩下就是構思實際使用的Topic結構設計 說是Topic 實際上這也是一種Service API設計

另外 HiveMQ 除了提供企業級的MQTT的各種服務外也為了推廣業務寫了一堆基礎介紹好文

MQTT Essentials

可能是我資質不夠吧 XD本來看了幾篇中文介紹跟範例都抓不到實際使用的好方法, 反覆看了幾篇實際案例後 才腦洞大開知道怎樣用才對, 下週如果沒有其他外務打擾應該可以先做一個demo 給老闆看, 然後再繼續做UI 跟著做Web Service

不過個人覺的MQTT這種用法還是有點浪費頻寬, 雖然對開發過程友善,  但是每次要把已經知道的結構都傳一次, 不能設計一種先傳 meta structure,  然後後面直接用reference 的設計嗎? 不過好像最近有MQTT 5.0 的protocol release 不知道會不會有, 不過meta struceture 設計變成後面加入的訂閱者會收不到,  但是如果加入類似Service Discovery 去跟Broker 查詢應該就可以克服, 不過這樣Broker 負擔會變重就是了