iOS知識點總結(jié)——XMPP 知識點

XMPP的使用可以參考 上帝說:要約炮!于是有了XMPP by 作者 伯恩的遺產(chǎn)

  1. iOS8之后,應(yīng)用需要注冊應(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];
    }
  1. 在iOS7以及iOS7之前,socket是不支持后臺運行(被掛起了),需要在plist做配置(屬性:Required background modes),如下:
plist文件

還需要在代碼里設(shè)置socket在后臺運行的BOOL值為YES,參考如下:

    _xmppStream.enableBackgroundingOnSocket = YES;

此時真機上socket已經(jīng)可以后臺運行了,但是模擬器沒法后臺運行。

3.XMPP總結(jié)

  • 1.XMPP是一個即時通訊的傳輸協(xié)議,傳輸?shù)臄?shù)據(jù)格式是xml格式
  • 2.XMPP是通過Socket開發(fā)的,基于TCP/IP協(xié)議, 跟服務(wù)器交互的核心類是XMPPStream類。XMPPStream里面有個GCDAsynSocket對象,對C語言的CFReadStreamRef(輸入流)、CFWriteStreamRef(輸出流)進行了封裝。
  • 3.XMPP是基于模塊開發(fā)的,eg:
    自動連接模塊XMPPReconnect 、
    電子名片模塊XMPPvCardTempModule、
    頭像模塊XMPPvCardAvatarModule、
    花名冊模塊XMPPRoster、
    消息模塊XMPPMessageArchiving,
    在使用以上模塊有時候需要配合其對應(yīng)的CoreData數(shù)據(jù)存儲模塊使用。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容