xmppFramework-创新互联
简介:
成都创新互联公司主要从事成都做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务惠民,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108xmppFramework是一个基于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];
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页标题:xmppFramework-创新互联
转载来于:http://scyanting.com/article/codoec.html