XMPP UserSearch с использованием последней версии smack 4.1.3 получил ошибку удаленного сервера не найдено
Вот что я использую: Openfire 3.10.2 Smack 4.1.3 Среда: Android
Я пытаюсь найти зарегистрированного пользователя, но мне не удается это сделать. Я пробовал так много разных комбинаций. Я также попробовал старую версию smack. Вот мой последний измененный код:
UserSearchManager userSearchManager = new UserSearchManager(connection);
Form searchForm = null;
List<ReportedData.Row> list = null;
try {
userSearchManager.getSearchForm("search." + connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", userName);
answerForm.setAnswer("Name", true);
answerForm.setAnswer("search", userName);
ReportedData data = userSearchManager.getSearchResults(answerForm, "search." + connection.getServiceName());
list = data.getRows();
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
Log.e(LOG_TAG, e.getMessage());
} catch (SmackException.NotConnectedException e) {
Log.e(LOG_TAG, e.getMessage());
}
Я получил бы эту ошибку org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: remote-server-not-found - отменить в режиме онлайн,
Form searchForm = manager.getSearchForm("search." + connection.getServiceName());
Я не знаю, пропустил ли я что-то на сервере openfire, или мне нужно что-то настроить, прежде чем я начну поиск. Моя обходная идея заключалась в том, чтобы получить полный список зарегистрированных пользователей, а затем выполнить поиск оттуда, но я не уверен, как этого добиться. После того, как я вошел в систему, список состоит только из моих друзей и групп. Может ли кто-нибудь указать мне правильное направление?
1 ответ
Вы пытаетесь найти пользователей на сервере "search." + connection.getServiceName()
, но ваш сервер говорит вам, что не может найти этот сервер. Похоже, вы не настроили поисковый сервер в OpenFire или используете неправильный адрес.