您好,登錄后才能下訂單哦!
簡介:
xmppFramework是一個(gè)基于RFC-3920的實(shí)現(xiàn)。支持多線程和線程保護(hù)(用了GCD),同時(shí)通用于所有的ios開發(fā)設(shè)備的通信框架。
介紹:
該框架主要分為兩部分----The xmpp core和The extensions (roster, XEP's,etc)
xmppcore是RFC-3920的實(shí)現(xiàn)。
xmppcore介紹:
這部分中包含:
XMPPStream
XMPPParser
XMPPJID
XMPPElement
XMPPIQ
XMPPMessage
XMPPPresence
XMPPModule
XMPPLogging
XMPPInternal
這些類。
xmppstream類是開發(fā)者主要打交道的類,這個(gè)中包含了連接服務(wù)器,用戶跟服務(wù)器的通信。
XMPPParser這個(gè)是一個(gè)內(nèi)部類。主要用于解析。
XMPPJID這個(gè)用來標(biāo)記用戶。其中包含用戶名和域名。
XMPPElement是XMPPIQ,XMPPMessage&XMPPPresence的基類。數(shù)據(jù)返回以后的處理。主要擴(kuò)展實(shí)現(xiàn)了NSXMLElement,因此能查詢到所有xml的元素。
XMPPModule提供了可插拔的擴(kuò)展。
Elements: IQ, Message, & Presence
這個(gè)是XMPPElement的擴(kuò)展:
XMPPIQ -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObject
XMPPMessage -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObject
XMPPPresence -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObject
另外NSXMLElement+XMPP提供了一些策略方法,方便對這些信息進(jìn)行處理,如提取消息中得某變量:[elementattributeIntValueForName:@"age"];
配置連接(以google郵件為例):
第一步:配置用戶的JID:
xmppStream.myJID=[XMPPJIDjidWithString:@"user@gmail.com"];
第二步:配置需要連接的服務(wù)器:
xmppStream.hostName=@"myCompany.com";也可以是ip地址:
xmppStream.hostName=@"192.168.2.27";xmpp會(huì)設(shè)置一個(gè)默認(rèn)端口。(這步要是沒
有,xmpp自動(dòng) 連接myjid的域名)。
添加代理:
xmpp使用的是多播代理:
添加代理:[xmppStreamaddDelegate:selfdelegateQueue:dispatch_get_main_queue()];
刪除代理:[xmppStreamremoveDelegate:self];
添加模式
這個(gè)實(shí)現(xiàn)了插拔擴(kuò)展。如連接斷了以后重連模式:
xmppReconnect=[[XMPPReconnect alloc]init];
[xmppReconnect activate:xmppStream];
xmppReconnectaddDelegate:selfdelegateQueue:dispatch_get_main_queue()];
網(wǎng)絡(luò)連接
NSError*error=nil;
if(![xmppStreamconnect:&error])
{
NSLog(@"Oops, I probably forgot something: %@",error);
}
認(rèn)證
-(void)xmppStreamDidConnect:(XMPPStream*)sender
{
[xmppStreamauthenticateWithPassword:passworderror:NULL];
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。