2015-09-30 1 views
0

Iam, создающий клиент IM на android. Iam, используя экземпляр сервера openfire, работающего на EC2. В настоящее время я пытаюсь зарегистрировать нового пользователя с моим приложением. соединение работает нормально, но когда я вызываю AccountManager.createAccount (email, password, mymap), я получаю исключение.openfire issue using smack 4.1.0 на android

а именно XMPPErrorExecption ниже моя трассировка стека

10-01 02:58:54.443 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: bad-request - modify 
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232) 
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:213) 
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at org.jivesoftware.smackx.iqregister.AccountManager.createAccount(AccountManager.java:272) 
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at com.example.eoin_a.im_app20.Utils.ConnectionManager.registerDevice(ConnectionManager.java:109) 
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at com.example.eoin_a.im_app20.Models.RegisterModel$1.call(RegisterModel.java:110) 
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at com.example.eoin_a.im_app20.Models.RegisterModel$1.call(RegisterModel.java:93) 
10-01 02:58:54.445 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237) 

И также получение «Пользователь пытался аутентификация с этим сервером с использованием неизвестного получателем» сообщения в журнале на моем OpenFire сервере. Я не уверен, что это значит.

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

ниже код я использую, чтобы создать мое соединение

config = XMPPTCPConnectionConfiguration.builder() 
       .setHost(HOST) 
       .setPort(PORT) 
       .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled) 
       .setServiceName(HOST) 
       .setUsernameAndPassword(ACCOUNT, PASS) 
       .build(); 
      conn = new XMPPTCPConnection(config); 
      conn.setPacketReplyTimeout(10000); 
      accman = AccountManager.getInstance(conn); 

Iam использованием xmpp.domain по умолчанию на разъединять, который только кажется, частный IP-адрес в настройках сервера. Я не уверен, что это вызовет проблему. Если у кого-то есть информация о том, почему это не работает для меня, я был бы признателен за помощь. Благодаря!

+0

У любого есть какие-либо знания в этой области. Я в тупике –

ответ

0

Я только что испытал ту же ошибку. В моем случае я позвонил accountManager.createAccount() после connection.login(). Подсказка о том, как решить проблему, была в Javadoc от accountManager.supportsAccountCreation().

Возвращает true, если сервер поддерживает создание новых учетных записей. Многие серверы требуют, чтобы вы не были в настоящее время аутентифицированы при создании новых учетных записей, поэтому наиболее безопасное поведение заключается только в создании новых учетных записей до входа на сервер.

Таким образом, убедитесь, что вы не вошли в систему при создании новых учетных записей! По крайней мере, это решило мою проблему.

+0

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

+0

, думаю, что мое клиентское приложение для IM сейчас приостановлено. Openfire кажется довольно ненадежным tbh. –

+0

Не могли бы вы сообщить, если это исправить вашу проблему? На всякий случай у других возникла такая же проблема. – AlbAtNf