Sto tentando di creare una chat multiutente. Sto ottenendo errori mentre mi unisco alla stanza. Metodo di creazione di chat room:Errore durante l'accesso alla stanza MUC in XMPP (smack)
public void createMultiUserChatRoom(String roomName, String nickName) {
// Get the MultiUserChatManager
MultiUserChatManager multiUserChatManager = MultiUserChatManager.getInstanceFor(connection);
// Get a MultiUserChat using MultiUserChatManager
MultiUserChat multiUserChat = multiUserChatManager.getMultiUserChat(roomName+"@conference.localhost");
try {
multiUserChat.create(nickName);
Form form = multiUserChat.getConfigurationForm();
Form submitForm = form.createAnswerForm();
List<FormField> formFieldList = submitForm.getFields();
for (FormField formField : formFieldList) {
if(!FormField.Type.hidden.equals(formField.getType()) && formField.getVariable() != null) {
submitForm.setDefaultAnswer(formField.getVariable());
}
}
submitForm.setAnswer("muc#roomconfig_persistentroom", true);
submitForm.setAnswer("muc#roomconfig_publicroom", true);
multiUserChat.sendConfigurationForm(submitForm);
} catch (Exception e) {
e.printStackTrace();
}
}
Metodo per la giunzione camera MUC:
public void joinMultiUserChatRoom(String userName, String roomName) {
// Get the MultiUserChatManager
MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);
// Create a MultiUserChat using an XMPPConnection for a room
MultiUserChat multiUserChat = manager.getMultiUserChat(roomName + "@conference.localhost");
DiscussionHistory history = new DiscussionHistory();
history.setMaxStanzas(-1);
try {
multiUserChat.join(userName, "", history, connection.getPacketReplyTimeout());
} catch (Exception e) {
e.printStackTrace();
}
}
Ottenere lista di stanza unito dall'utente:
public List<String> getJoinedGroupByUserName(String userName) {
// Get the MultiUserChatManager
MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);
List<String> joinedRooms = null;
try {
// Get the rooms where [email protected] has joined
joinedRooms = manager.getJoinedRooms(userName+"@conference.localhost");
} catch (Exception e) {
e.printStackTrace();
}
return joinedRooms;
}
Mentre utente unirsi alla stanza ottengo questo messaggio: "Questa stanza è bloccata dall'ingresso fino alla conferma della configurazione."
Ho inviato la configurazione durante la creazione di spazio. Devo inviare di nuovo la configurazione mentre mi unisco alla stanza? E la stanza esiste (c'è entrata per stanza nel database) – Jennifer
No, solo per creare tempo, ma "creare" è completato SOLO dopo che il CREATORE si unisce alla stanza. Tuttavia, probabilmente per una stanza di perseveranza dovrai anche inviare il creatore della configurazione come proprietario (muC# roomconfig_roomowners -> Lista di proprietari) –
MrPk
Sto provando ad unirmi al membro qui per la chat room. Quindi anche per questo ho bisogno di aggiungere i proprietari di stanze? Ho bisogno di aggiungere i membri della stanza più tardi, quindi non posso aggiungerlo durante la creazione della stanza MUC – Jennifer