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的内容:

MQTT的修炼之路_第1张图片

这么多,看起来是不是一脸蒙、两脸懵逼、三脸懵逼(顿号)百脸懵逼........

淡定,我也是这么过来的,等下会告诉你们,一些会用到的东西

Penta Kill.进入正题(五杀才是我的风格)

朕的项目所导入的MQTTClient


MQTT的修炼之路_第2张图片

为什么注释"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

在声明文件中写:


MQTT的修炼之路_第3张图片
MQTT的修炼之路_第4张图片

最重要的:

MQTT的修炼之路_第5张图片

BaseInstanceModel这个是朕自己封装的单例基类,你们直接继承NSObject

好,声明写完了,我们要写实现了:

先写一个extension

MQTT的修炼之路_第6张图片

接着来写我们的shareInstance


MQTT的修炼之路_第7张图片
MQTT的修炼之路_第8张图片

下面是delegate的实现


MQTT的修炼之路_第9张图片
MQTT的修炼之路_第10张图片
MQTT的修炼之路_第11张图片

好啦,基本功能已经完成,由于我们项目中有很多特殊内容,不能直接给你们看,这些基本内容应该够你们使用了.如果你们要使用加密之类的,比如ssl可以私聊我,这部分我已经做过了.不过用的人应该不多,我就没在这儿写.

ACE

后续有什么问题可以直接留言,也可以微博联系,微博关注哦,亲!


MQTT的修炼之路_第12张图片

你可能感兴趣的:(MQTT的修炼之路)