iOS XMPP學(xué)習(xí)點(diǎn)

一、“用戶登錄”為例

  • 例如:用戶名稱:lisi@cjpServer.local,密碼:123456

1、登錄流程:

用戶登錄流程.png

2、注意點(diǎn)

1、應(yīng)用APP不能同時(shí)兩個(gè)用戶在線

  • 客戶端:僅允許一個(gè)連接必須同一時(shí)間,不可能同時(shí)有兩個(gè)連接到服務(wù)器

    • 1、點(diǎn)擊登錄按鈕,然后輸入對(duì)的用戶名 -> 連接成功后,但是確輸入錯(cuò)誤的密碼 -> 就會(huì)連接成功但是肯定會(huì)授權(quán)失敗。


      授權(quán)失敗.png
    • 2、如果此時(shí)不管用戶名與密碼對(duì)不對(duì),已經(jīng)連接成功一次的前提下,繼續(xù)點(diǎn)擊登錄按鈕來進(jìn)行連接授權(quán)登錄的話,會(huì)提示錯(cuò)誤,因?yàn)樯弦淮蔚卿浭跈?quán)失敗雖然,但是連接成功了連接還在,錯(cuò)誤提示:


      多次連接bug.png
  • 3、解決bug:
    • 進(jìn)行連接前,1.先斷開連接,2.然后連接


      解決bug.png

2、XMPPStream交互都是在子線程進(jìn)行的,所以,如果進(jìn)行刷新UI必須要回到主線程

  • 如果不會(huì)到主線程,任然到子線程進(jìn)行刷新UI,你會(huì)明顯感覺到延時(shí)效果。所以:刷新UI必須要回到主線程進(jìn)行

3、XMPPStream內(nèi)部已經(jīng)通過GCDAsyncSocket對(duì)象(異步Socket)封裝

  • 我們直接操作XMPPStream就OK了,XMPPStream其實(shí)是遵守了GCDAsyncSocketDelegate的協(xié)議。。。,屏蔽了細(xì)節(jié)。所以我們只要 XMPPStream對(duì)象指定代理,我們通過xmppStream對(duì)象調(diào)用連接和授權(quán)方法后,如果我們想監(jiān)聽,只要實(shí)現(xiàn)代理的對(duì)應(yīng)的方法(連接是否成功,授權(quán)是否成功等,都可以監(jiān)聽到)

4、XMPP日志輸出 設(shè)置

  • 找到框架中的XMPPLogging.h文件,修改一下里面的一個(gè)宏即可。如下圖:


    日志輸出.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,802評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,080評(píng)論 4 61
  • 1. clean 打掃,清潔 拆分:cl--從來;e--鵝;an--一個(gè)。從來都是鵝一個(gè)人打掃干凈的。 2. c...
    世話實(shí)說閱讀 864評(píng)論 0 0
  • 【飛箝第五】 原文(5.3)將欲用之于天下,必度權(quán)量能,見天時(shí)之盛衰,制地形之廣狹,岨(zu)崄(xian)之難易...
    海納百川vs王者之風(fēng)閱讀 295評(píng)論 0 0
  • 元?dú)饣謴?fù) 周一 精神滿滿 說好的早睡(?ì _ í?) 12點(diǎn)之前就算進(jìn)步 掉肌肉 不喜歡 一定是秤不準(zhǔn) 不行...
    YvonneCCC閱讀 263評(píng)論 0 0

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