XMPP使用简介--登录

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

在现阶段的通信服务中,各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message andPResence Protocol)协议的出现,实现了整个及时通信服务协议的互通。有了这个协议之后,使用任何一个组织或者个人提供的即使通信服务,都能够无障碍的与其他的及时通信服务的用户进行交流。例如google 公司2005年推出的Google talk就是一款基于XMPP协议的即时通信软件。下面我们就谈论一下如何简单的使用XMPP

一、环境的搭建,本文采用的是openFire 服务器

1、下载最新openfire for mac版http://www.igniterealtime.org/downloads/index.jsp

2、点击下面图标进行安装JDK 和服务器

3、启动后,点击Open Admin Console按钮,自动在浏览器中打开本地web配置页面http://localhost:9090/setup/index.jsp然后进行服务器配置

4、将语言设置为中文即可

5、设置服务器地址为本机

6、设置数据库

在执行此步骤之前需要做一些准备工作,

1创建数据库 :create database openfire;

2导入openfire资源文件夹 resources/database下的数据表:source /usr/local/openfire/resources/database/openfire_MySQL.sql

7、特性设置

8、设置openfire服务器管理员的帐号和密码

9、安装完成,点击按钮登录

登录后界面如下

10、按照上面操作创建用户密码

11、此时的准备工作基本完成

二 导入XMPP

1、将XMPP全部导入工程

2、导入依赖包

由于动态库的存在因此需要做以下操作

三、到目前为止我们的XMPP成功导入到项目中,下面我们开始编码实现用户登录

1、在代理里面引入包,并且定义流属性

2、初始化并且添加代理

#pragmamark 初始化

- (void)setUpStream{if(_stream==nil) {//1 初始化stream_stream=[[XMPPStream alloc] init];//2 添加代理[_stream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)];

}

}

3、建立连接

#pragmamark 建立链接//建立连接- (void) connect{//1 初始化[self setUpStream];//2 制定服务器地址,用户名,密码NSString * userName=@"jereh@jereh.local";

NSString* hostName=@"jereh.local";//3 设置JID和主机XMPPJID * jid=[XMPPJID jidWithString:userName];

[self.stream setMyJID:jid];

[self.stream setHostName:hostName];//4 开始连接NSError *error;

[self.stream connectWithTimeout:XMPPStreamTimeoutNone error:&error];if(error) {

NSLog(@"发送连接请求失败");

}else{

NSLog(@"发送连接请求成功");

}

}

5、进行密码验证,通过代理方法返回结果

#pragmamark 验证身份请求

-(void)xmppStreamDidConnect:(XMPPStream *)sender{

NSLog(@"链接成功");//发送身份验证请求NSString * pwd=@"jereh123";

[self.stream authenticateWithPassWord:pwd error:nil];

}#pragmamark 密码正确

- (void) xmppStreamDidAuthenticate:(XMPPStream *)sender{

NSLog(@"身份验证成功");//通知服务器上线[self onLine];

}#pragmamark 密码错误

- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSxmlElement *)error{

NSLog(@"身份验证失败");

}

6、开始连接

想要了解更多内容的小伙伴,可以点击查看源码,亲自运行测试。

疑问咨询或技术交流,请加入官方QQ群: (452379712)

作者:杰瑞教育

出处:http://www.cnblogs.com/jerehedu/

本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航