2015-02-09 3 views
0

мигрировал из asmack для smack 4.1 beta2. Созданные muc номера больше не настойчивы.Как создать постоянную комнату muc в smack 4.1 beta2

MultiUserChatManager mucm=MultiUserChatManager.getInstanceFor(connection); 
muc=mucm.getMultiUserChat(groupid+"@conference.localhost"); 
DiscussionHistory histroy=new DiscussionHistory(); 
histroy.setMaxStanzas(10); 
muc.createOrJoin(username,null,histroy,SmackConfiguration.getDefaultPacketReplyTimeout()); 
muc.nextMessage(); 

При создании с гаджимом комнаты настойчивы.

EDIT: Вот код, который мы использовали ранее. По умолчанию чаты были стойкими,

muc = new MultiUserChat(connection, groupid+"@conference.localhost"); 

if(!muc.isJoined()) 
{ 
DiscussionHistory histroy=new DiscussionHistory(); 
histroy.setMaxStanzas(10); 
muc.join(username,null,histroy,SmackConfiguration.getDefaultPacketReplyTimeout()); 
muc.nextMessage(0); 
} 
+1

Как вы ранее создали постоянные комнаты? Я думаю, вам нужно отправить правильный форум данных с помощью 'MultiUserChat.create', чтобы создать постоянную комнату. – Flow

+0

Hello @flow pls проверяет отредактированный вопрос. – Vignesh

ответ

3

Вам нужно установить muc#roomconfig_persistentroom в true в конфигурации MUC из когда создания комнаты.

MultiuserChat muc = manager.getMultiUserChat("[email protected]"); 
muc.create("myNick"); 
// room is now created by locked 
Form form = muc.getConfigurationForm(); 
Form answerForm = form.createAnswerForm(); 
answerForm.setAnswer("muc#roomconfig_persistentroom", true); 
muc.sendConfigurationForm(answerForm); 
// sending the configuration form unlocks the room 

Обратите внимание, что не все службы XMPP MUC поддерживают постоянные номера. Для получения дополнительной информации см:

+1

Я думаю, что answerForm.setAnswer ("muC# roomconfig_persistentroom", "true"); должен быть answerForm.setAnswer ("muC# roomconfig_persistentroom", true); вместо String - логическое значение. – AB1209

5

Вы должны представить форму, как это для создания упорных групп:

private void setConfig(MultiUserChat multiUserChat) { 
    try { 
     Form form = multiUserChat.getConfigurationForm(); 
     Form submitForm = form.createAnswerForm(); 
     for (Iterator<FormField> fields = submitForm.getFields(); fields.hasNext();) { 
      FormField field = (FormField) fields.next(); 
      if (!FormField.TYPE_HIDDEN.equals(field.getType()) && field.getVariable() != null) { 
       submitForm.setDefaultAnswer(field.getVariable()); 
      } 
     } 
     submitForm.setAnswer("muc#roomconfig_publicroom", true); 
     submitForm.setAnswer("muc#roomconfig_persistentroom", true); 
     multiUserChat.sendConfigurationForm(submitForm); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^