IOS+MQTT 网络切换 实时推送暂停和运行
来源:互联网 发布:蚁群算法 matlab 三维 编辑:程序博客网 时间:2024/05/22 12:30
1、需求:网络切换 、前后台、挂起恢复时 MQTT暂停或断开和连接运行
2、说明:本项目是外汇APP,程序启动时,行情数据实时推送至移动端
3、问题:
1)前后台、挂起恢复时 MQTT 暂停或运行没问题;
applicationWillEnterForeground和applicationDidBecomeActive 方法里添加
[selfMQTTDataRefresh];方法如下:
//行情刷新方法
-(void)MQTTDataRefresh{
///////////////////////tcp 方式 mqtt//////////////////////
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
[[MQTTClientManagershareInstance] registerDelegate:self];
[[MQTTClientManagershareInstance]pushWithTopic:kMQTT_Topic_Market_data_infoWillMsg:nil];
[[MQTTClientManagershareInstance]pushWithTopic:kMQTT_Topic_Trades_InfoWillMsg:nil];
});
}
2)ios10 上拉菜单时切换网络,MQTT的行情实时数据获取不了;- 解决思路1 断网是MQTT关掉close,来网时MQTT重新login,没搞定
/**
断开连接,清空数据
*/
-(void)close{
NSLog(@"-----------------MQTT主动断开连接-----------------");
[_transportclose];
[_mqttSessionclose];
_delegate=nil;//代理
_mqttSession=nil;
_transport=nil;//连接服务器属性
_ip=nil;//服务器ip地址
_port=0;//服务器ip地址
_userName=nil;//用户名
_password=nil;//密码
_topic=nil;//单个主题订阅
_topics=nil;//多个主题订阅
_mqttStatus=nil;//连接服务器状态
_flag=nil;//目前只用于返回token上传结果
_isAutoConnect=false;//是否自动重连标识
_connectCount=0;//自动重连次数
_nowCount=0;//当前已经重连的次数
}
- 解决思路3 以上都没搞定,继续想其他思路+google;网上看见http://blog.csdn.net/hherima/article/details/44803223这个哥们思路
{在【网易新闻】App上看视频的时候,【网易视频】只是对第一种情况进行处理,即暂停视频;而剩余的情况都不做处理,视频继续播放。
这个应该是对用户交互细化,引起我的兴趣。有时候,我只是使用一下上拉快捷菜单做一些简单的开关,比如:打开手电筒、打开wifi、关闭旋转等。不希望后面的视频停止。现在市面上有些App,对这三种情况都是先暂停,前台再恢复,但是视觉上还是会卡一下。}
于是在
applicationWillResignActive 方法里添加 关闭+销毁单利方式
[MQTTClientManagerattempDealloc];才搞定
+(void)attempDealloc{
onceToken =0; //只有置成0,GCD才会认为它从未执行过.它默认为0.这样才能保证下次再次调用shareInstance的时候,再次创建对象.
if (instance) {
[instanceclose];
instance =nil;
}
}
- IOS+MQTT 网络切换 实时推送暂停和运行
- php脚本(功能ios/android推送;技术mongodb队列,MQTT,锁文件。linux运行)
- MQTT推送
- Android推送 xmpp 和 mqtt 开发问题
- iOS网络推送通知
- iOS 网络实时监控
- iOS 网络实时监控
- shell命令前后端切换和暂停
- iOS随笔_网络(Socket/MQTT)
- 浅谈iOS和Android后台实时消息推送的原理和区别
- iOS之Reachability和AFN实时检测网络状态
- iOS开发网络篇—文件下载(暂停和恢复)
- iOS开发网络篇—文件下载(四·暂停和恢复)
- iOS开发网络篇—文件下载(四·暂停和恢复)
- iOS开发网络篇—文件下载(暂停和恢复)
- 4.2 Activity的暂停和重新运行
- Training--暂停和继续(运行)一个Activity
- 移动端消息推送xmpp和mqtt对比
- accesToOracle And OracleToAccess
- 微信小程序开发工具常用开发快捷键
- Ubuntu16.04 安装Spyder问题
- Matlab 斐波那契数列
- PDF文件转CAD图纸怎么做
- IOS+MQTT 网络切换 实时推送暂停和运行
- ZooKeeper学习第一期---Zookeeper简单介绍
- sqlserver数据库解决孤立用户
- Hive分区的概念
- java项目经验
- oracle clob like
- PL/SQL学习总结
- 深入剖析Java中的装箱和拆箱
- java泛型