[iOS 项目中用的MQTT以及注意点记录]
来源:互联网 发布:思科网络会议系统 编辑:程序博客网 时间:2024/05/29 03:43
目前项目中用的是这个MQTT处理,,没有采用GithHub上的MQTTClient
但是用下来发现,项目中目前使用的这个方案也是可以满足需要的
目前使用的是这个
iOS,MQTTClient使用
http://www.cnblogs.com/douniwanxia/p/6580175.html
下面记录一下问题
MQTT的断开;
问题一
无论是什么情况的断开,
MQTTSession的代理方法
-(void)handleEvent:(MQTTSession *)session event:(MQTTSessionEvent)eventCode error:(NSError *)error;
都会返回closed这样的错误码
这时候只需要执行重新连接即可
- (void)connect{
[_mqttSession connect];
}
但是稍微注意的是,最好手工控制一下重连的延迟时间,不然在处于断网的情况下,mqtt会不断重连,不断回调错误码,然后又崩溃风险,加一下延迟执行重连,目前没有发现崩溃可能.
问题二
iOS系统,在mqtt进入后台以后,MQTT好像就不工作了,回调什么的也没有,只能重新打开app以后,才会执行回调,才能重新连接,不知道大家有没有好点的办法解决,先记录一下, 等找到办法了再补充
问题三(诡异的线程卡顿)
1.切换为4G网络后,登录App同时登陆MQTT,在订阅消息的时候线程卡主!!!!!
明确一个事实:
在订阅消息时,必须在主线程,否则不会回调获取消息
网络情况不好时,就容易在订阅消息这一步卡主主线程,导致UI线程卡顿.
dispatch_async(dispatch_get_main_queue(), ^{ // [self.mqttSession subscribeTopic:_topic]; [self.mqttSession subscribeToTopic:_topic atLevel:MQTTQosLevelAtLeastOnce]; });
解决办法就是超时时间设置小一点就好!!!!!!!!
[self.mqttSession connectAndWaitTimeout:1];
阅读全文
0 0
- [iOS 项目中用的MQTT以及注意点记录]
- MQTT正式部署注意点
- ios开发中类方法以及self的注意点
- ios开发中类方法以及self的注意点
- iOS简单的多表查询以及SQLite注意点
- 大型项目部署注意点记录
- ios-自定义tableViewcell以及注意点
- sizeof() 的用法以及注意点
- s:select的用法以及注意点
- yum 的使用以及注意点
- DP的一些注意点以及题目
- 异常的学习以及一些注意点
- jquery的使用注意点以及建议
- AngularJS的一些坑以及注意点
- 内联函数的使用以及注意点
- phoenix的一些操作以及注意点
- RecycleView的使用以及一些注意点
- AngularJS的一些坑以及注意点
- 面向对象去重问题
- 如何正确使用log4j
- 查sqlserver 版本信息, 实例名, 服务器名以及SP,trigger等object的定义
- npm shrinkwrap的用途
- 创建数据库和表
- [iOS 项目中用的MQTT以及注意点记录]
- sdl实现texture拖动
- 【HDU 1598】find the most comfortable road(并查集)
- 深度学习笔记——深度学习框架TensorFlow(九)[Building Input Functions with tf.contrib.learn]
- SVN管理
- 白话空间统计之二十五:空间权重矩阵(一)点数据的空间关系(1)
- 常用的调试手段
- POJ 3342 Party at Hali-Bula / HDU 2412 / UVAlive 3794 / UVA 1220
- 编译和链接(一)