首先附上其他文章鏈接
XMPP系列之Smack(4.1.3)(二)獲取好友分組
XMPP系列之Smack(4.1.3 )(三)獲取已加入的聊天室列表
XMPP系列之Smack(4.1.3 )(四)創(chuàng)建聊天室
新年新氣象,2017年在不知不覺中就已經(jīng)來到了我們身邊,在這里祝小伙伴們新年快樂奏寨,新的一年有新的機遇新的愿望及全新的自己抖部!
距離上次寫搭建openfire服務器也有一段時間了诺凡,這段時間項目上線,所以在xmpp項目上花的時間不是很多践惑,那么我今天就承接著上次的文章說明使用smackAPI是如何登錄到服務器的腹泌。
首先需要說明的是之前的版本使用的是XMPPCONNECTION這個類,到了4.1版本有了很大的改變,XMPPCONNECTION變成了接口尔觉,里面定義了獲取服務器name凉袱、host、及port等等方法
實現(xiàn)XMPPConnection這個接口的是AbstractXMPPConnection這個抽象類侦铜,最后我們使用這個抽象類的子類XMPPTCPConnection來做連接工作专甩,看下說明:
就是說這個類是一個默認的連接到XMPP服務且在XMPP核心中是被指定的類,我們在整個應用中所用的連接類就是它了钉稍,然后我們還要給他配置一些信息涤躲,比如要連接的服務器名、主機地址贡未、端口號等种樱,為了能夠連接上服務器我們還要禁用掉安全模式,不然是連接不上的俊卤,當然如果有證書的話就不用禁用嫩挤,下面是我寫的完整配置信息
XMPPTCPConnectionConfiguration.Builder xmpptcpConnectionConfiguration = XMPPTCPConnectionConfiguration.builder();
xmpptcpConnectionConfiguration.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
xmpptcpConnectionConfiguration.setDebuggerEnabled(true);
xmpptcpConnectionConfiguration.setUsernameAndPassword(userName, passWord);
xmpptcpConnectionConfiguration.setServiceName(Constants.XMPP_SERVICE_NAME);
xmpptcpConnectionConfiguration.setHost(Constants.XMPP_SERVICE_NAME);
xmpptcpConnectionConfiguration.setPort(Constants.XMPP_PORT);
xmpptcpConnectionConfiguration.setResource(Constants.RESOURCE);
xmpptcpConnectionConfiguration.setSendPresence(true);
有了連接配置類的構造后我們就可以初始化一個連接對象了
XMPPTCPConnection connection = new XMPPTCPConnection(xmpptcpConnectionConfiguration.build());
完成初始化連接對象之后,要使用這個對象去連接上我們配置好的openfire服務器才能做之后的操作消恍,連接代碼很簡單岂昭,一行代碼搞定
connection.connect();
在登錄之前要先判斷是否連接成功,不然會報未連接異常
connection.isConnected()
返回true我們再完成登錄操作
connection.login(userName, passWord);
這里我單獨對登錄寫了個方法狠怨,方便之后跳過登錄界面后在程序內使用佩抹,切記連接和登錄步驟需要在子線程內進行
判斷登錄是否成功需要下面一行代碼做判斷操作
connection.isAuthenticated();
到此連接和登錄就已經(jīng)完成了,下篇再講述如何獲取好友列表信息取董!謝謝觀看棍苹,再見!