XMPP的使用可以參考 上帝說:要約炮拷肌!于是有了XMPP by 作者 伯恩的遺產(chǎn)
- iOS8之后攀甚,應(yīng)用需要注冊(cè)應(yīng)用担忧,獲得用戶授權(quán)烦磁,才能接受本地通知养匈。
關(guān)鍵代碼如下:
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
}
- 在iOS7以及iOS7之前哼勇,socket是不支持后臺(tái)運(yùn)行(被掛起了)都伪,需要在plist做配置(屬性:Required background modes),如下:
還需要在代碼里設(shè)置socket在后臺(tái)運(yùn)行的BOOL值為YES积担,參考如下:
_xmppStream.enableBackgroundingOnSocket = YES;
此時(shí)真機(jī)上socket已經(jīng)可以后臺(tái)運(yùn)行了陨晶,但是模擬器沒法后臺(tái)運(yùn)行。
3.XMPP總結(jié)
- 1.XMPP是一個(gè)即時(shí)通訊的傳輸協(xié)議,傳輸?shù)臄?shù)據(jù)格式是xml格式
- 2.XMPP是通過Socket開發(fā)的先誉,基于TCP/IP協(xié)議湿刽, 跟服務(wù)器交互的核心類是XMPPStream類。XMPPStream里面有個(gè)GCDAsynSocket對(duì)象褐耳,對(duì)C語言的CFReadStreamRef(輸入流)诈闺、CFWriteStreamRef(輸出流)進(jìn)行了封裝。
- 3.XMPP是基于模塊開發(fā)的,eg:
自動(dòng)連接模塊XMPPReconnect 铃芦、
電子名片模塊XMPPvCardTempModule雅镊、
頭像模塊XMPPvCardAvatarModule、
花名冊(cè)模塊XMPPRoster刃滓、
消息模塊XMPPMessageArchiving仁烹,
在使用以上模塊有時(shí)候需要配合其對(duì)應(yīng)的CoreData數(shù)據(jù)存儲(chǔ)模塊使用。