Openfire (xmpp) sunucusu kullanarak bir sohbet uygulaması oluşturdum. Bire bir kişi sohbetleri iyi çalışıyor ve mesajlar anında teslim ediliyor. Ancak bir gruba mesaj gönderdiğimizde ilk mesaj gecikir ve ikinci mesaj anında gönderilir.Geciken grup openfire mesajlaşma
MultiUserChatManager groupChat =
MultiUserChatManager.getInstanceFor(connection).getMultiUserChat("group_name");
groupChat.send("Message object");
İlk mesaj neden gecikir?
MUC Oluşturma yaratılış hakkında bir konu ve gönderme ile ilgili yayılan yan etkisi bir tür var
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();
}
Belki gelen iletiyi bir veritabanında saklıyorsunuz? Evet ise, veri tabanını yaratarak gecikmeli bir mesaj oluşturmaktan daha fazla bir sorun olduğunu tahmin ediyorum. – Opiatefuchs
Sadece ilk mesaj. Grubu değiştirdikten sonra ilk mesajda aynı olur. –
Sadece veritabanı sorunu varsa o zaman tekrar tekrar aynı şeyler olur –