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!
2.MQTTSession這個是第二層API,這里面就是MQTTSessionManager包裝調用的那一層,解決的也是調用方式和信息回調,以及訂閱主題和發送消息,不過這里面的方法可多多了......
MQTTSession和MQTTSessionManager方法
Legendary Kill.讓偶們來寫一些代碼吧
其實本來不想寫封裝的,寫了說不定會導致你們直接抄,所以我決定,截圖
1,最簡單的接入
MQTT接入示例,拋棄她吧,這不是我們想要的.
2.我們自己封裝MQTTSession
先創建一個單例類,MessageHandle
在聲明文件中寫:
最重要的:
BaseInstanceModel這個是朕自己封裝的單例基類,你們直接繼承NSObject
好,聲明寫完了,我們要寫實現了:
先寫一個extension
接著來寫我們的shareInstance
下面是delegate的實現
好啦,基本功能已經完成,由于我們項目中有很多特殊內容,不能直接給你們看,這些基本內容應該夠你們使用了.如果你們要使用加密之類的,比如ssl可以私聊我,這部分我已經做過了.不過用的人應該不多,我就沒在這兒寫.
ACE
后續有什么問題可以直接留言,也可以微博聯系,微博關注哦,親!