xmpp学习使用简单介绍(一)
来源:互联网 发布:excel数据求和 编辑:程序博客网 时间:2024/05/22 12:25
自己学习xmpp官方文档,慢慢整理的笔记,不见得都是正确的,请用选择性眼光看待,也有问题尚未解决,持续更新中~~~
创建新工程,命名为XMPPIOS.
一:导入XMPPFramework
将XMPP拖拽到工程中。
添加静态库
并在Build Settings中设置如下
此时Run一下,成功,证明导入正确。
注意:XMPP使用了ARC,Edit -> Refactor -> convert to Objective-C ARC,转换。
头文件也可以自己创建,内容是需要import的头文件,可以根据自己的需求来确定。
------------------------------------------------可爱的分界线------------------------------------------------------------------
二:连接和注册 XEP-0077 XEP-0020
拖拽相应控件到页面中。
在appdelegate.h中创建相应属性
.m
这里创建xmpp的地方比官方的demo少了很多,主要是因为开始使用的时候个人认为并不用那么多变量,之后会一点一点添加。
添加创建连接方法
创建连接成功后,两个代理方法调用,分别为
- (void)xmppStreamWillConnect:(XMPPStream *)sender
- (void)xmppStreamDidConnect:(XMPPStream *)sender
此时添加注册的代码
如果注册成功,调用如下代理方法
- (void)xmppStreamDidRegister:(XMPPStream *)sender
现在看看后台openfire中已经存在注册的用户了。
如果没有注册成功则调用
- (void)xmppStream:(XMPPStream *)sender didNotRegister:(NSXMLElement *)error
如果发现如下错误
<iq xmlns="jabber:client" type="error" to="saas.kanyabao.com/213e75ed"><query xmlns="jabber:iq:register"><username>dawn</username><password>1111</password></query><error code="409" type="cancel"><conflict xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
则是因为当前的用户已经存在。
然后在- (void)xmppStreamDidRegister:(XMPPStream *)sender
为当前用户做认证,如果认证成功,则调用
- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender
否则调用
- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error
此时,当前用户已经与后台openfire连接,但是在openfire中,当前用的状态是未登录状态,所以此时,当前用户发送状态告知后台,这样其他的用户才能收到当前用户的上线通知。
所以,在
- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender
方法中添加如下代码
XMPPPresence *presence = [XMPPPresencepresence];
[[self xmppStream] sendElement:presence];
再次run,刷新open fire 发现当前用户的状态已经是上线了
注意:注册之前要创建连接,否则会报"Please wait until the stream is connected"的错误
连接或者注册后需要做一次认证,并发送一个上线的消息,否则后台和其他用户都无法收到当前用户的上线消息,后台openfire中看到的当前用户是灰色的离线状态。
注册之后如果要再次建立连接,最好断开后再创建,否则会报"Attempting to connect while already connected or connecting"的错误。
博客来源:http://www.cnblogs.com/PhenixWang/p/3275454.html
- xmpp学习使用简单介绍(一)
- xmpp学习使用简单介绍(二)
- xmpp学习使用简单介绍(三)
- XMPP简单介绍
- XMPP简单介绍
- XMPP简单介绍
- XMPP的简单介绍
- XMPP简单介绍
- XMPP简单介绍
- XMPP协议简单介绍
- XMPP协议简单学习
- xmpp的简单使用
- xmpp学习笔记(一)
- xmpp学习笔记(一)
- xmpp学习笔记(一)
- (一)XMPP学习笔记
- XMPP学习笔记(一)
- Xmpp学习记录[一]:
- [025] 微信公众帐号开发教程第1篇-引言
- 如何将CAJ文件转换为pdf
- Widows2003开机取消按CTRL+ALT+DEL
- 如何破解无线路由器和WEP密码
- VC画图
- xmpp学习使用简单介绍(一)
- MFC中常用类,宏,函数介绍
- [027] 微信公众帐号开发教程第3篇-开发模式启用及接口配置
- 服务器数据库系列 - Mysql Explain 详解
- 在Excel 2010中创建列表和取消创建的列表
- DFS与BFS
- iOS 6会出现 UItextfield 无法输入任何字符的 bug
- 双击编辑list
- oracle 游标练习