Asmack Conflict(409) - 尝试登录服务器时

时间:2012-04-17 09:08:50

标签: android xmpp smack asmack

我在尝试连接到Openfire服务器时遇到冲突错误(409)。

我检查了服务器,并且服务器策略设置为“如果有任何相同的新传入连接,则启动最后一次连接”

W/System.err(13238): conflict(409)
W/System.err(13238):    at org.jivesoftware.smack.SASLAuthentication.bindResourc
eAndEstablishSession(SASLAuthentication.java:458)
W/System.err(13238):    at org.jivesoftware.smack.SASLAuthentication.authenticat
e(SASLAuthentication.java:349)
W/System.err(13238):    at org.jivesoftware.smack.XMPPConnection.login(XMPPConne
ction.java:230)
W/System.err(13238):    at org.jivesoftware.smack.Connection.login(Connection.ja
va:353)

尝试这样做时:

ConnectionConfiguration xmppCc = new ConnectionConfiguration("some.domain");
xmppCc.setSendPresence(false);
XMPPConnection xmppConn = new XMPPConnection(xmppCc);
xmppConn.connect();
xmppConn.login(username, password);

执行最后一行(登录)

时抛出异常

我在我的活动onDestroy()

上这样做
@Override
protected void onDestroy() {
    super.onDestroy();
    Presence presence = new Presence(Presence.Type.unavailable);
    xmppConn.sendPacket(presence);  
    xmppConn.disconnect();
}

感谢任何帮助,谢谢! :d

2 个答案:

答案 0 :(得分:0)

我不会在smack中搜索代码。似乎服务器(听起来像openfire)没有按照你的配置去做:踢最后一个资源。您可以尝试通过使用XMPP客户端来尝试验证此情况,该客户端尝试绑定已连接的fullJID(即裸ID +资源)。

答案 1 :(得分:0)

@GodWin xmpp通过冲突错误(409)创建一个用户名已经被其他人占用的帐户。在登录时Xmpp没有通过这种类型的异常。 因此,如果您创建一个帐户,请使用未在服务器上注册的新凭据。