iOS XMPP——自动连接
2015-11-12 本文已影响571人
iOS_成才录
自动连接的作用:
- 如果出现意外断线,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;
}