iOS开发之使用XMPPFramework实现即时通讯(三)

iOS开发之使用XMPPFramework实现即时通讯(三)

  你看今天是(三)对吧,前面确定有(一)和(二),在发表完iOS开发之使用XMPPFramework实现即时通讯(一)iOS开发之使用XMPPFramework实现即时通讯(二)后有好多的小伙伴加我Q或者评论留言提出一些问题,好比:“楼主,在哪注册?”,“楼主,你的登陆用户名和密码是多少?”之类的问题。在以前的博客中使用的帐号和密码,为了方便,是用spark客户端注册的,在今天的博客中将会详细的介绍如何使用代码注册咱们新用户,还有在这感谢关注个人小伙伴们,谢谢大家的支持!html

  好了,废话少说,说道到注册新的用户其实仍是蛮简单的,以前在使用xmppframework的时候是直接链接后就直接认证。今天的博客的大致思路是让用户输入用户名和密码,咱们拿着用户名取链接咱们的openfire服务器(即便用户没有注册,拼接出的jid也能链接服务器)。链接完之后这不一样的是去注册密码而不是去认证,注册成功后,而后再认证。服务器

  一,运行效果图展现app

    仍是那句话,为了直观,是少不了图的,运行的部分截图以下:dom

 

  二.代码展现spa

    1.为了提示,我把AlterView进行了简单封装,便于使用,代码以下:线程

复制代码

1 //提示框2 -(void)alterWithTip:(NSString *) tip3 {4     UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:tip delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];5     [alter show];6 }

复制代码

 

    2.开始今天的主题,首先在咱们的Controller里获取xmppSteam. 并注册委托回调code

复制代码

1 - (void)viewDidLoad {2     [super viewDidLoad];3 4     UIApplication *application = [UIApplication sharedApplication];5     id delegate = [application delegate];6     _xmppStream = [delegate xmppStream];7     //在主线程中注册回调8     [self.xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];9 }

复制代码

 

    3.点击注册按钮,而后调取链接方法,链接方法中用到的用户名是用户本身输入的htm

复制代码

 1 //用用户输入的用户名来建立链接 2 -(void) xmppConnect 3 { 4     NSString *userName = self.userNameTextField.text; 5      6     //建立JID 7     XMPPJID *jid = [XMPPJID jidWithUser:userName domain:MYDOMAIN resource:@"iPhone"]; 8      9     //把Jid添加到流10     [self.xmppStream setMyJID:jid];11     12     //链接服务器13     NSError *error = nil;14     [self.xmppStream connectWithTimeout:10 error:&error];15     if (error) {16         NSLog(@"链接错误%@",[error localizedDescription]);17     }18 }

复制代码

 

    4.实现链接成功后回调的方法,在本方法中注册咱们的用户密码,代码以下:blog

复制代码

 1 //链接成功后,注册用户 2 -(void)xmppStreamDidConnect:(XMPPStream *)sender 3 { 4      5     [self alterWithTip:@"openfire服务器已链接"]; 6      7     NSString *password = self.passwordTextField.text; 8      9     NSError *error = nil;10     [self.xmppStream registerWithPassword:password error:&error];11     if (error) {12         NSLog(@"注册错误%@",[error localizedDescription]);13     }14 }

复制代码

 

    5.实现注册成功后的回调方法,注册成功后,认证密码:ip

复制代码

 1 //注册成功后,认证用户密码 2 -(void)xmppStreamDidRegister:(XMPPStream *)sender 3 { 4     [self alterWithTip:@"用户注册成功"]; 5      6     //注册成功后认证用户名和密码 7     NSError *error = nil; 8     [self.xmppStream authenticateWithPassword:self.passwordTextField.text error:&error]; 9     if (error) {10         NSLog(@"认证错误%@",[error localizedDescription]);11     }12 }

复制代码

 

    6.实现认证成功后的回调

1 //认证成功后的回调2 -(void)xmppStreamDidAuthenticate:(XMPPStream *)sender3 {4     [self alterWithTip:@"登录成功"];5 }

 

    7.实现认证失败后的回调

1 //认证失败的回调2 -(void)xmppStream:sender didNotAuthenticate:(DDXMLElement *)error3 {4     [self alterWithTip:@"用户名和密码错误"];5 }

 

  3、注意问题

    若是你输入的帐号是已经注册过的帐号,会提示注册失败。

 

  今天的博客先到这儿,欢迎批评指正~

做者:青玉伏案
出处:http://www.cnblogs.com/ludashi/ 本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。 若是文中有什么错误,欢迎指出。以避免更多的人被误导。 

相关文章
相关标签/搜索