Android Asmack冲突(409)-尝试登录到服务器时

Android Asmack冲突(409)-尝试登录到服务器时,android,xmpp,smack,asmack,Android,Xmpp,Smack,Asmack,尝试连接到Openfire服务器时出现冲突错误(409) 我与服务器进行了检查,服务器策略设置为“如果有相同的新传入连接,则踢最后一个连接” 尝试执行此操作时: ConnectionConfiguration xmppCc = new ConnectionConfiguration("some.domain"); xmppCc.setSendPresence(false); XMPPConnection xmppConn = new XMPPConnection(xmppCc); xmppCon

尝试连接到Openfire服务器时出现冲突错误(409)

我与服务器进行了检查,服务器策略设置为“如果有相同的新传入连接,则踢最后一个连接”

尝试执行此操作时:

ConnectionConfiguration xmppCc = new ConnectionConfiguration("some.domain");
xmppCc.setSendPresence(false);
XMPPConnection xmppConn = new XMPPConnection(xmppCc);
xmppConn.connect();
xmppConn.login(username, password);
执行最后一行(登录)时引发异常

我在我的活动onDestroy()中执行此操作


感谢您的帮助,谢谢我不会在smack中搜索代码。似乎服务器(听起来像openfire)没有执行您配置的操作:启动最后一个资源。您可以尝试使用XMPP客户端来验证这种情况,该客户端尝试绑定一个已连接的fullJID(即裸ID+资源)。

我不会在smack中搜索代码。似乎服务器(听起来像openfire)没有执行您配置的操作:启动最后一个资源。您可以尝试使用XMPP客户端来验证这种情况,该客户端尝试绑定一个已连接的fullJID(即裸ID+资源)。

@GodWin-XMPP在您创建一个用户名已被其他用户使用的帐户时,会出现冲突错误(409)。在登录时,Xmpp不会通过这种类型的异常。
因此,如果您创建了一个帐户,则使用未在服务器上注册的新凭据。

@GodWin xmpp当您使用任何其他用户已经使用的用户名创建帐户时,会出现冲突错误(409)。在登录时,Xmpp不会通过这种类型的异常。
因此,如果您创建了一个帐户,然后使用未在服务器上注册的新凭据。

如果您尝试使用其他资源登录,会发生什么情况?我可以成功登录,如果我第一次尝试使用此资源,同样的事情,在我成功登录后,我无法再次登录,它抛出上面的错误..如果您尝试使用其他资源登录会发生什么情况?我可以成功登录,如果我第一次尝试使用此资源,同样的事情,在我成功登录后,我无法再次登录,它抛出上面的错误..嗨,对不起,我真的不明白你的意思“您可以尝试使用一个XMPP客户端来验证这种情况,该客户端尝试绑定一个已经连接的fullJID(即裸ID+资源)”“您可以为我提供执行此操作的客户端的名称吗?我尝试使用pidgin(windows平台)登录,它登录和退出时没有任何问题,我尝试使用另一个客户端(citron IM)登录尽管pidgin仍在登录,但他们都成功登录(同时有两个连接)我们的想法是,使用不同的XMPP客户机/库和相同的服务器来重现这种情况,以查看行为是否保持不变,这样您就可以排除smack是问题所在。他们都是使用相同的完整JID登录的吗?嗨,抱歉,我不太明白您所说的“您可以尝试使用一个XMPP客户机来验证这种情况,该客户机尝试绑定一个已经连接的fullJID(即裸ID+资源)“您可以为我提供执行此操作的客户机的名称吗?我尝试使用pidgin(windows平台)登录,它登录和退出时没有任何问题,我尝试使用另一个客户机(citron IM)登录虽然pidgin仍在登录,但它们都成功登录(同时有两个连接)。我们的想法是,使用同一服务器的不同XMPP客户机/库再现这种情况,以查看行为是否保持不变,这样您就可以排除smack的问题。它们是否都使用相同的完整JID登录?
ConnectionConfiguration xmppCc = new ConnectionConfiguration("some.domain");
xmppCc.setSendPresence(false);
XMPPConnection xmppConn = new XMPPConnection(xmppCc);
xmppConn.connect();
xmppConn.login(username, password);
@Override
protected void onDestroy() {
    super.onDestroy();
    Presence presence = new Presence(Presence.Type.unavailable);
    xmppConn.sendPacket(presence);  
    xmppConn.disconnect();
}