Java中的Date 為什麼用類表示日期,而不是像其他語言中那樣用一個內置(built-in)類型來表示?例如,Visual Basic 中有一個內置的 date 類型,程式員可以採用#12/31/1999格式指定日期。看起來這似乎很方便,程式員只需要使用內置的 date 類型而不用考慮類。但實際上 ...
MQTT與HTTP協議的區別:
MQTT以數據為中心,而HTTP是以文檔為中心的。
HTTP是用於客戶端-伺服器計算的請求-響應協議,並不總是針對移動設備進行優化。
MQTT在這些術語中的主要優點是輕量級(MQTT將數據作為位元組數組傳輸)和發佈訂閱模型,這使其非常適合資源受限的設備並有助於節省帶寬。
**
HTTP的使用受限:
1.實現成本較高、實時性差
=>原因:設備主動向伺服器發送數據,難以主動向設備推送數據,如果只是單方面的數據採集還是勉強夠用。
但對於頻繁的操控場景只能通過對定期的主動拉取數據。實時性將大打折扣
2.安全性不高 HTTP明文協議 HTTPS
=>原因:http是一個明文協議,在要求高的物聯網場景中後果不堪設想
3.設備受限性
=>原因:對於物聯網場景的設備多樣化,有運算和存儲都十分受限的設備,http協議實現對xml和json的解析幾乎都不可能實現 不同的終端設備 手機、電腦 XML/JSON解析
MQTT的優勢
低協議開銷對不穩定網路的容忍、低功耗
數百萬個設備的連接、推送通知、客戶端平臺差異、防火牆容錯1.採用代理通信的方式
1、MQTT採用的是代理通訊的方式
2、發佈訂閱者模式
發佈者
伺服器 中間消息處理(代理) MQTT Broker
訂閱者
工作原理:發佈者可以將消息如 “你好” 發送到伺服器中的一個主題,這個主題可以叫任何名稱比如“hello”,如果訂閱者訂閱了這個主題他就可以收到發佈者的消息
發佈訂閱者模式解耦了發佈消息的客戶與訂閱消息客戶之間的關係