2

我在尝试连接到 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

4

2 回答 2

0

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

于 2012-04-17T12:20:46.787 回答
0

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

于 2012-12-31T12:02:29.237 回答