XMPP-用户登录
来源:互联网 发布:ubuntu kvm安装win7 编辑:程序博客网 时间:2024/05/22 19:41
用户登录/注册的思路:
/** * 思路: * 1.初始化 XMPPStream,设置代理 * 2.设置 XMPPStream 的 MyJid hostName * 3.开始链接 * 4.链接成功,发送密码给服务器,进行认证或注册(代理方法中实现) * 5.认证成功,发送一个"在线消息"给服务器,默认登陆成功是不在线的(代理方法中实现) */
// xmmp 基础服务类@property (strong,nonatomic) XMPPStream * xmppStream;
登录:
/** * 链接到 xmpp 服务器 */- (void)connect{ if (self.xmppStream == nil) { // 初始化 xmppstream self.xmppStream = [[XMPPStream alloc] init]; // 设置代理,发到子线程中执行 [self.xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)]; } // 链接之前要判断是都链接成功,否则会出现用上一次的 jid 重复链接的错误 if (![self.xmppStream isConnected]) { // 设置 xmppstream 的 myJID hostName hostPort 默认的5222可以不用设置 self.xmppStream.myJID = [XMPPJID jidWithUser:@"账户" domain:@"127.0.0.1" resource:nil]; self.xmppStream.hostName = @"127.0.0.1"; // 开始链接 NSError * error = nil; if (![self.xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]) { NSLog(@"%@",[error userInfo].description); } }}
代理方法:
#pragma mark - XMPPStreamDelegate#pragma mark - 链接成功:在此方法中要发送密码服务器,进行认证- (void)xmppStreamDidConnect:(XMPPStream *)sender{ NSError * error = nil; // 登录 [self.xmppStream authenticateWithPassword:@"密码" error:&error]; // 注册 // [self.xmppStream registerWithPassword:reigsterPwd error:&error]; if (error) { NSLog(@"%@",[error userInfo].description); }}#pragma mark 与服务器断开连接-(void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error{}#pragma mark - 认证成功:发送在线状态- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender{ XMPPPresence *presence = [XMPPPresence presenceWithType:@"available"]; [self.xmppStream sendElement:presence];}#pragma mark - 登陆失败,调用此方法- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(DDXMLElement *)error{}#pragma mark 注册成功-(void)xmppStreamDidRegister:(XMPPStream *)sender{}#pragma mark 注册失败-(void)xmppStream:(XMPPStream *)sender didNotRegister:(DDXMLElement *)error{}
断开链接:
/** * 断开链接 */- (void)disconnect{ // 断开链接的状态 XMPPPresence * presence = [XMPPPresence presenceWithType:@"unavailble"]; [self.xmppStream sendElement:presence]; // 断开 [self.xmppStream disconnect];}
0 0
- XMPP-用户登录
- XMPP系列:三、用户登录XMPP
- XMPP学习——2、用户登录
- XMPP学习——2、用户登录
- XMPP系列(二)----用户注册和用户登录功能
- XMPP登录
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
- XMPP 多终端登录
- XMPP登录不成功
- XMPP使用简介--登录
- XMPP 连接登录过程
- xmpp openfire 邮箱登录
- ConcurrentHashMap原理分析
- Mac OS X配置jdk
- HttpClient应用 与 Servlet 处理文件上传
- instancetype id区别
- Oracle 11g安装图文攻略
- XMPP-用户登录
- 隐马尔可夫模型及的评估和解码问题
- spark学习3-CountOnce
- 爬爬爬之路:C语言(四) 一维数组篇
- 接口测试之HttpClient
- 隐藏状态栏--iOS开发
- jQuery源码分析之removeAttr方法和attr方法
- iOS9网络适配
- eclipse调试以及step into step over step return区别