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
后续有什么问题可以直接留言,也可以微博联系,微博关注哦,亲!