iOS XMPP——自动连接

自动连接的作用:

  • 如果出现意外断线,XMPPReconnect会自动重新连接到XMPP服务器

实现自动连接的步骤:

  • 1、找到XMPPFramework.h头文件,添加下列代码,打开xmpp的自动连接扩展模块
// 自动连接模块
#import "XMPPReconnect.h"
  • 2、在AppDelegate.m文件的JPAppDelegate类扩展中,加入一个XMPPReconnect类型的属性以及两个方法下列代码:
@interface JPAppDelegate()<XMPPStreamDelegate>{
       
  // 自动连接模块
    XMPPReconnect *_reconnect;
    
    XMPPResultBlock _resultBlock;
}

//释放资源
- (void)teardownXmppstream;

  • 3、修改setupXmppStream方法:如下:
#pragma mark 初始化xmppStrem对象
-(void)setupXmppStream{
    
    NSAssert(_xmppStream == nil, @"xmppStream对象初始化多次");
    
    //1. 创建xmppStrem对象
    _xmppStream = [[XMPPStream alloc] init];
    //2. 添加代表
    [_xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];

/**                加入下列代码         **/
    
    //3. 添加自动连接模块
    _reconnect = [[XMPPReconnect alloc] init];
    //激活
    [_reconnect activate:_xmppStream];
}
  • 4、需要我们手动释放资源
#pragma mark 释放资源
-(void)teardownXmppstream{
    //移动代理
    [_xmppStream removeDelegate:self];
    
    //停止模块
    //停止自动连接模块
    [_reconnect deactivate];
  
    //断开连接
    [_xmppStream disconnect];
    
    //清空资源为nil
    _xmppStream = nil;
    _reconnect = nil;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,219评论 30 472
  • 最近一朋友正准备跳槽,就从各处搜索整理一些基础,便于朋友复习,也便于自己复习查看. 1. 回答person的ret...
    smile丽语阅读 1,811评论 0 7
  • iOS 的 XMPP framework 简介 登陆 - 验证密码上线 - 断开 - 好友状态 - 接收消息和发送...
    钱嘘嘘阅读 2,289评论 0 18
  • 等我变优秀,去见你。XF,再见。
    我在人间0阅读 184评论 0 0
  • 读完李笑来老师的《新生-七年就是一辈子》,把对自己影响比较深的句子记录在此,此书可在线观看或下载:http://z...
    Vivi成长吧阅读 557评论 0 1