打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IOS+MQTT 网络切换 实时推送暂停和运行

1、需求:网络切换 、前后台、挂起恢复时 MQTT暂停或断开和连接运行

2、说明:本项目是外汇APP,程序启动时,行情数据实时推送至移动端

3、问题:

     1)前后台、挂起恢复时 MQTT 暂停或运行没问题;

applicationWillEnterForegroundapplicationDidBecomeActive 方法里添加 

[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,没搞定
解决思路2 在思路1的基础上断网时MQTT的 close+单利销毁,还是没搞定

/**

 断开连接,清空数据

 */

-(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;

    }

    

}






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DDPush
在巨头的压迫下,云巴如何找到一条突围之路?| 专访
直播小程序源码有用的协议知识:MQTT协议
移动端即时通讯系统探讨
互联网推送服务原理:长连接+心跳机制(MQTT协议)
iOS推送之本地推送(iOS Notification Of Local Notification)...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服