xmppFramework
简介:
成都创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目网站设计制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元分宜做网站,已为上家服务,为分宜各地企业和个人服务,联系电话:18982081108
xmppFramework是一个基于RFC-3920的实现。支持多线程和线程保护(用了GCD),同时通用于所有的ios开发设备的通信框架。
介绍:
该框架主要分为两部分----The xmpp core和The extensions (roster, XEP's,etc)
xmppcore是RFC-3920的实现。
xmppcore介绍:
这部分中包含:
XMPPStream
XMPPParser
XMPPJID
XMPPElement
XMPPIQ
XMPPMessage
XMPPPresence
XMPPModule
XMPPLogging
XMPPInternal
这些类。
xmppstream类是开发者主要打交道的类,这个中包含了连接服务器,用户跟服务器的通信。
XMPPParser这个是一个内部类。主要用于解析。
XMPPJID这个用来标记用户。其中包含用户名和域名。
XMPPElement是XMPPIQ,XMPPMessage&XMPPPresence的基类。数据返回以后的处理。主要扩展实现了NSXMLElement,因此能查询到所有xml的元素。
XMPPModule提供了可插拔的扩展。
Elements: IQ, Message, & Presence
这个是XMPPElement的扩展:
XMPPIQ -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObject
XMPPMessage -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObject
XMPPPresence -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObject
另外NSXMLElement+XMPP提供了一些策略方法,方便对这些信息进行处理,如提取消息中得某变量:[elementattributeIntValueForName:@"age"];
XMPPStream 的配置
配置连接(以google邮件为例):
第一步:配置用户的JID:
xmppStream.myJID=[XMPPJIDjidWithString:@"user@gmail.com"];
第二步:配置需要连接的服务器:
xmppStream.hostName=@"myCompany.com";也可以是ip地址:
xmppStream.hostName=@"192.168.2.27";xmpp会设置一个默认端口。(这步要是没
有,xmpp自动 连接myjid的域名)。
添加代理:
xmpp使用的是多播代理:
添加代理:[xmppStreamaddDelegate:selfdelegateQueue:dispatch_get_main_queue()];
删除代理:[xmppStreamremoveDelegate:self];
添加模式
这个实现了插拔扩展。如连接断了以后重连模式:
xmppReconnect=[[XMPPReconnect alloc]init];
[xmppReconnect activate:xmppStream];
xmppReconnectaddDelegate:selfdelegateQueue:dispatch_get_main_queue()];
网络连接
NSError*error=nil;
if(![xmppStreamconnect:&error])
{
NSLog(@"Oops, I probably forgot something: %@",error);
}
认证
-(void)xmppStreamDidConnect:(XMPPStream*)sender
{
[xmppStreamauthenticateWithPassword:passworderror:NULL];
}
本文名称:xmppFramework
网页URL:http://pwwzsj.com/article/gjsipc.html