一、“用戶登錄”為例
- 例如:用戶名稱: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



