Ошибка конфигурации MUC: не удалось найти поле для указанной переменной

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

Итак, я попробовал код любви, чтобы добавить члена в группу, но он дает ошибку:

Не удалось найти поле для указанной переменной.

Вот мой код:

EntityBareJid mucJid = JidCreate.entityBareFrom("[email protected]");

MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(conn);

MultiUserChat muc = manager.getMultiUserChat(mucJid);

Resourcepart nickname = Resourcepart.from("admin");

List<String> owners = new ArrayList<>();
owners.add("user1@servicename");
owners.add("user2@servicename");

muc.create(nickname);
Form form = muc.getConfigurationForm().createAnswerForm();
form.setAnswer("muc#roomconfig_roomowners", owners);
muc.sendConfigurationForm(form);

Может кто-нибудь помочь мне ?


person D G    schedule 26.09.2018    source источник


Ответы (1)


Эй, @DG, нет возможности добавить члена в группу на постоянной основе, XMPP удаляет пользователя комнаты при потере соединения.

Вот способ, который я использую для этой проблемы

пока вы создаете группу, сохраните данные о группе и членах группы в любом месте на вашем сервере с помощью API ИЛИ получите информацию о комнате из XMPP, но я бы рекомендовал сохранить информацию о группах с помощью API, потому что XMPP не получает всю информацию о комнате, которая нам нужна.

Затем, через некоторое время, когда вы создаете соединение, пока приложение открыто, отправьте групповое приглашение всем членам группы, поэтому, если какой-либо член группы находится в сети или подключен, он присоединится к группе (убедитесь, что этот процесс находится в фоновом режиме).

Для получения дополнительной информации см. XEP-0045: многопользовательский чат

person Adil    schedule 06.03.2019