2012-04-17 3 views
2

При попытке подключения к серверу Openfire возникает ошибка конфликта (409).Asmack Conflict (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

+0

Что произойдет, если вы попытаетесь войти в систему, используя другой ресурс? – Jave

+0

Я могу войти в систему успешно, то же самое, если я использую этот ресурс с первой попытки, после того, как я успешно зарегистрировался, я просто не могу войти снова, он выдает ошибку выше .. –

ответ

0

Я бы не стал искать код внутри smack. Кажется, что сервер (звучит как openfire) не делает то, что вы ему настроили: перебирая последний ресурс. Вы можете проверить этот случай, используя клиент XMPP, который пытается связать уже подключенный fullJID (это голый ID + ресурс).

+0

Привет, извините, я не совсем понимаю, что вы означает «Вы можете попытаться проверить этот случай, используя клиент XMPP, который пытается связать уже подключенный fullJID (это голый ID + ресурс)», можете ли вы предоставить мне имя клиента, который это сделает? Я попытался войти в систему с помощью pidgin (платформа Windows), и он без проблем загружается и выходит из системы, и я пытаюсь войти в систему с другим клиентом (citron IM), пока pidgin все еще регистрируется, они оба успешно подключены (два подключения на одном компьютере время) –

+0

Идея состоит в том, что вы воспроизводите ситуацию с другим клиентом/библиотекой XMPP с одним и тем же сервером, чтобы убедиться, что поведение остается неизменным, так что вы можете исключить проблему smack как проблему. Они оба заходят с одним и тем же полным JID? – Flow

0

@GodWin xmpp через ошибку конфликта (409) при создании учетной записи с именем пользователя, которое уже принято любым другим. В Время входа Xmpp не выполняется этот тип исключения. Итак, если вы создаете учетную запись, используйте новые учетные данные, которые не регистрируются на сервере.