一、“用戶登錄”為例
- 例如:用戶名稱:lisi@cjpServer.local,密碼:123456
1跨算、登錄流程:
用戶登錄流程.png
2、注意點
1椭懊、應(yīng)用APP
不能同時兩個用戶在線
-
客戶端:僅允許一個連接必須同一時間诸蚕,不可能同時有兩個連接到服務(wù)器
-
1、點擊登錄按鈕氧猬,然后輸入對的用戶名 -> 連接成功后背犯,但是確輸入錯誤的密碼 -> 就會連接成功但是肯定會授權(quán)失敗。
授權(quán)失敗.png -
2盅抚、如果此時不管用戶名與密碼對不對漠魏,已經(jīng)連接成功一次的前提下,繼續(xù)點擊登錄按鈕來進行連接授權(quán)登錄的話妄均,會提示錯誤柱锹,因為上一次登錄授權(quán)失敗雖然,但是連接成功了連接還在丰包,錯誤提示:
多次連接bug.png
-
- 3禁熏、解決bug:
-
進行連接前,1.先斷開連接邑彪,2.然后連接
解決bug.png
-
2瞧毙、XMPPStream交互都是在子線程進行的,所以锌蓄,如果
進行刷新UI必須要回到主線程
- 如果不會到主線程升筏,任然到子線程進行刷新UI,你會明顯感覺到延時效果瘸爽。所以:刷新UI必須要回到主線程進行
3您访、XMPPStream內(nèi)部已經(jīng)通過GCDAsyncSocket對象(異步Socket)封裝
- 我們直接操作XMPPStream就OK了,XMPPStream其實是遵守了GCDAsyncSocketDelegate的協(xié)議剪决。灵汪。。柑潦,屏蔽了細(xì)節(jié)享言。所以我們只要 XMPPStream對象指定代理,我們通過xmppStream對象調(diào)用連接和授權(quán)方法后渗鬼,如果我們想監(jiān)聽览露,只要實現(xiàn)代理的對應(yīng)的方法(連接是否成功,授權(quán)是否成功等譬胎,都可以監(jiān)聽到)
4差牛、XMPP日志輸出 設(shè)置
-
找到框架中的XMPPLogging.h文件命锄,修改一下里面的一個宏即可。如下圖:
日志輸出.png