MQTT的修煉之路

First blood. 什么是MQTT


MQTT 是IBM開發的一個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支持所有平臺,幾乎可以把所有聯網物品和外部連接起來,被用來當做傳感器和致動器(比如通過Twitter讓房屋聯網)的通信協議 ----------------------百度詞條解釋

Double Kill.應用場景


MQTT是一個設計得非常出色的傳輸層協議,在移動消息、物聯網、車聯網、智能硬件甚至能源勘探等領域有著廣泛的應用。1個字節報頭、2個字節心跳、消息QoS支持等設計,非常適合在低帶寬、不可靠網絡、嵌入式設備上應用。

不同的應用有不同的系統要求,用戶使用emqttd消息服務器前,可以按自己的應用場景進行測試,而不是簡單的連接壓力測試:

Android消息推送: 推送消息廣播測試。

移動即時消息應用: 消息收發確認測試。

智能硬件應用: 消息的往返時延測試。

物聯網數據采集: 并發連接與吞吐測試

Triple Kill.先來說朕的MQTT的framework如何選擇的

EMQ?MQTT的客戶端sdk列表,這里你想要的基本上都有了,一定要和你的后臺小伙伴分享一下.

個人而言,選擇的是MQTTClient至于為什么??????

我用的OC開發,況且MQTTClient最近都有更新,迭代.一個有人維護的為什么不選???!!!

Quadra Kill.我們再來簡單介紹一下MQTTClient.

項目導入的事情,請交給Cocopods

下面是MQTTClient的內容:

這么多,看起來是不是一臉蒙、兩臉懵逼、三臉懵逼(頓號)百臉懵逼........

淡定,我也是這么過來的,等下會告訴你們,一些會用到的東西

Penta Kill.進入正題(五殺才是我的風格)

朕的項目所導入的MQTTClient


為什么注釋"MQTTClient/ManagerL"?

因為我們要自己分裝MQTT啊,雖然MQTTClient/ManagerL這個里面已經幫你封裝了,但是我們自己封裝一遍才有自己的思想啊

1.MQTTSessionManager,第一層API(寶貝兒,拋棄她吧,這個manager我們自己來寫),這里面幫你封裝了MQTTSession,提供了最基本的調用方式和信息回調,以及訂閱主題和發送消息,不知道什么是主題??????

fuck,let us see!

MQTT 名詞解釋

2.MQTTSession這個是第二層API,這里面就是MQTTSessionManager包裝調用的那一層,解決的也是調用方式和信息回調,以及訂閱主題和發送消息,不過這里面的方法可多多了......

MQTTSession和MQTTSessionManager方法

Legendary Kill.讓偶們來寫一些代碼吧

其實本來不想寫封裝的,寫了說不定會導致你們直接抄,所以我決定,截圖

1,最簡單的接入

MQTT接入示例,拋棄她吧,這不是我們想要的.

2.我們自己封裝MQTTSession

先創建一個單例類,MessageHandle

在聲明文件中寫:


最重要的:

BaseInstanceModel這個是朕自己封裝的單例基類,你們直接繼承NSObject

好,聲明寫完了,我們要寫實現了:

先寫一個extension

接著來寫我們的shareInstance


下面是delegate的實現


好啦,基本功能已經完成,由于我們項目中有很多特殊內容,不能直接給你們看,這些基本內容應該夠你們使用了.如果你們要使用加密之類的,比如ssl可以私聊我,這部分我已經做過了.不過用的人應該不多,我就沒在這兒寫.

ACE

后續有什么問題可以直接留言,也可以微博聯系,微博關注哦,親!


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容