我正在使用Smack和Openfire服务器作为聊天客户端,所有工作都很好,如聊天,发送新用户邀请,获取可用用户列表等等。我不知道该怎么做如果连接是在粘性服务中,并且我在连接和连接断开连接时添加了一个连接监听器,那么请说出#34; Internet Connection"
我使用以下代码作为connectionlistener。
connection.addConnectionListener(new ConnectionListener() {
@Override
public void reconnectionSuccessful() {
Log.i("","Successfully reconnected to the XMPP server.");
}
@Override
public void reconnectionFailed(Exception arg0) {
Log.i("","Failed to reconnect to the XMPP server.");
}
@Override
public void reconnectingIn(int seconds) {
Log.i("","Reconnecting in " + seconds + " seconds.");
}
@Override
public void connectionClosedOnError(Exception arg0) {
Log.i("","Connection to XMPP server was lost.");
Log.v("ONMESSAGE", "Error was " + arg0.toString() + "and Now connecting");
}
@Override
public void connectionClosed() {
Log.i("","XMPP connection was closed.");
}
});
所以我想到将两行代码添加到connectionClosedOnError()即
connection.disconnect(new Presence(Presence.Type.unavailable));
//code for connection(new one)
这让我有时间跟踪错误
现在我研究了这个问题,发现当我尝试使用相同的资源重新连接时仍然存在连接,因此我得到了错误。我的问题是如何重新连接以及正确的程序是什么?
我知道如何解决问题" XMPP“stream:error(conflict)”因为我可以提供一个String to login()方法作为第三个参数,它解决了这个问题。
这不是我主要关注的问题,我想知道重新连接的程序。我尝试使用所有方法进行登录,并且没有任何方法被调用,这真是太神奇了。