J'ai construit une application de discussion en utilisant un serveur Openfire (xmpp). Les discussions de personne à personne fonctionnent bien et les messages sont livrés instantanément. Mais lorsque nous envoyons un message à l'intérieur d'un groupe, le premier message est retardé et le deuxième message est transmis instantanément.Messagerie de groupe retardée dans openfire
MultiUserChatManager groupChat =
MultiUserChatManager.getInstanceFor(connection).getMultiUserChat("group_name");
groupChat.send("Message object");
Pourquoi le premier message est-il retardé?
Création est CUM
MultiUserChatManager mchatManager = MultiUserChatManager.getInstanceFor(xmpptcpConnection);
MultiUserChat mchat = mchatManager.getMultiUserChat(group);
if (!mchat.isJoined()) {
Log.d("CONNECT", "Joining room !! " + group + " and username " + username);
boolean createNow = false;
try {
mchat.createOrJoin(username);
createNow = true;
} catch (Exception e) {
Log.d("CONNECT", "Error while creating the room " + group + e.getMessage());
}
if (createNow) {
Form form = mchat.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);
mchat.sendConfigurationForm(submitForm);
//mchat.sendConfigurationForm(
// new Form(DataForm.Type.submit)); //this is to create the room immediately after join.
}
}
Log.d("CONNECT", "Room created!!");
return true;
} catch (SmackException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
}
Peut-être que vous stockez le message entrant dans une base de données? Si oui, je suppose que c'est plus un problème en créant la base de données qu'un message retardé ... – Opiatefuchs
Il se produit seulement le premier message seulement. Une fois que nous passons au groupe, la même chose arrive dans le premier message. –
Si c'est seulement une question de base de données, alors les mêmes choses se reproduisent encore et encore –