XMPP系列之Smack(4.1.3)(一)登录服务器

首先附上其他文章链接
XMPP系列之Smack(4.1.3)(二)获取好友分组
XMPP系列之Smack(4.1.3 )(三)获取已加入的聊天室列表
XMPP系列之Smack(4.1.3 )(四)创建聊天室
新年新气象,2017年在不知不觉中就已经来到了我们身边,在这里祝小伙伴们新年快乐,新的一年有新的机遇新的愿望及全新的自己!

距离上次写搭建openfire服务器也有一段时间了,这段时间项目上线,所以在xmpp项目上花的时间不是很多,那么我今天就承接着上次的文章说明使用smackAPI是如何登录到服务器的。

首先需要说明的是之前的版本使用的是XMPPCONNECTION这个类,到了4.1版本有了很大的改变,XMPPCONNECTION变成了接口,里面定义了获取服务器name、host、及port等等方法

XMPP系列之Smack(4.1.3)(一)登录服务器_第1张图片
Paste_Image.png

实现XMPPConnection这个接口的是AbstractXMPPConnection这个抽象类,最后我们使用这个抽象类的子类XMPPTCPConnection来做连接工作,看下说明:

XMPP系列之Smack(4.1.3)(一)登录服务器_第2张图片
Paste_Image.png

就是说这个类是一个默认的连接到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);

这里我单独对登录写了个方法,方便之后跳过登录界面后在程序内使用,切记连接和登录步骤需要在子线程内进行

XMPP系列之Smack(4.1.3)(一)登录服务器_第3张图片
Paste_Image.png

判断登录是否成功需要下面一行代码做判断操作

connection.isAuthenticated();

到此连接和登录就已经完成了,下篇再讲述如何获取好友列表信息!谢谢观看,再见!

你可能感兴趣的:(XMPP系列之Smack(4.1.3)(一)登录服务器)