尝试重新连接或登录时XMPP“stream:error(conflict)”

时间:2014-07-29 14:27:48

标签: android xmpp smack user-presence

我正在使用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)

这让我有时间跟踪错误

  1. 服务器无响应。
  2. 未连接到服务器。
  3. 冲突错误
  4. 现在我研究了这个问题,发现当我尝试使用相同的资源重新连接时仍然存在连接,因此我得到了错误。我的问题是如何重新连接以及正确的程序是什么?

    我知道如何解决问题" XMPP“stream:error(conflict)”因为我可以提供一个String to login()方法作为第三个参数,它解决了这个问题。

    这不是我主要关注的问题,我想知道重新连接的程序。我尝试使用所有方法进行登录,并且没有任何方法被调用,这真是太神奇了。

0 个答案:

没有答案