iOS XMPP——自动连接

自动连接的作用:

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

实现自动连接的步骤:

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

你可能感兴趣的:(iOS XMPP——自动连接)