Ich habe erfolgreich One-on-One-Chat in meiner Android-Anwendung implementiert. Ich habe SQLite verwendet, um den Chat zwischen zwei Benutzern wie in der App-Datenbank zu speichern. Dieser Chat wird jedoch entfernt, wenn der Benutzer die Anwendung deinstalliert. Was ich wissen muss, ist, wie ich den Chat zwischen zwei Benutzern auf meinem Server speichern kann. Wenn der Nutzer die App neu installiert oder sich an einem anderen Gerät anmeldet, kann er seinen vorherigen Chat sehen. Ich habe mod_archive und mod_mam auf meinem Ejabberd-Server aktiviert und kann Offline-Nachrichten in der App abrufen. DankChat-Verlauf von benutzerdefinierten eJabberd-Server abrufen
Antwort
Sie müssen xep folgen - 0136
http://xmpp.org/extensions/xep-0136.html
Für schlagen Sie es in folgenden Weise erhalten müssen:
public void loadArchiveMessages(Jid jid, XMPPTCPConnection xmppTcpConnection){
try {
MamManager mamManager=MamManager.getInstanceFor(xmppTcpConnection);
MamManager.MamQueryResult mamQueryResult = mamManager.queryArchive(jid);
List<Forwarded> forwardedMessages=mamQueryResult.forwardedMessages;
Iterator<Forwarded> forwardedIterator=forwardedMessages.iterator();
while (forwardedIterator.hasNext()){
Forwarded forwarded=forwardedIterator.next();
Stanza stanza=forwarded.getForwardedStanza();
if (stanza instanceof Message) {
String messageId=stanza.getStanzaId();
xmppTcpConnection.processMessage((Message) stanza);
}
}
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotLoggedInException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
}
}
Hallo Jaspreet !! Danke für deine Antwort. Ich habe versucht, diesen Code in meiner App zu implementieren, aber ich kann MamManager und Jid in Android Studio nicht auflösen. Und darf ich die Zeichenfolgen kennen, die Sie in Forwarded-Klasse verwendet haben? Bitte lassen Sie mich wissen, wenn ich etwas vermisse. –
Paket org.jivesoftware.smackx.mam; UPVOTE BITTE –
Hallo Jaspreet .. !! Nochmals vielen Dank für Ihre Antwort. Ich kann dieses Paket nicht in meinen importierten Bibliotheken finden. Entschuldigung, wenn ich hier irgendeine dumme Frage stelle, aber ich bin neu in dieser schmackhaften Implementierung. Gibt es dafür eine JAR-Datei oder eine aktualisierte Version der Smack-Bibliothek? Ich verwende derzeit die Version 4.1.9. Als ich ein wenig mehr über das Abrufen des Chat-Verlaufs vom Server suchte, stieß ich auf einen neuen Prozess, d. H. Das Senden eines benutzerdefinierten IQ an den Server. Können Sie mir bitte erklären, wie sich Ihre Methode von dem benutzerdefinierten IQ-Teil unterscheidet. Wenig mehr Anleitung in diesem Prozess wird wirklich geschätzt werden. Danke im Voraus. –
- 1. Festlegen und Abrufen von benutzerdefinierten HTTP-Headern
- 2. kann Werte von benutzerdefinierten Funktionen nicht abrufen
- 3. Bilder von benutzerdefinierten Taxonomie-Begriffen abrufen
- 4. Abrufen von Modellnamen in benutzerdefinierten Anzeigenamen Attribut
- 5. Abrufen von Daten aus benutzerdefinierten Feld
- 6. Abrufen von Spalteninformationen für einen benutzerdefinierten Tabellentyp
- 7. Zugriffstoken von einem benutzerdefinierten Header abrufen
- 8. Abrufen von Spalteninformationen eines benutzerdefinierten Tabellentyps
- 9. Abrufen von benutzerdefinierten Routennamen aus der Ansicht
- 10. Abrufen der benutzerdefinierten Prototyp-Zellenhöhe vom Storyboard?
- 11. Abrufen eines benutzerdefinierten Benutzerfeldwerts (expando) in Liferay
- 12. WordPress Abrufen aller Beiträge eines benutzerdefinierten Beitragstyps
- 13. Abrufen des Paketnamens im benutzerdefinierten Spinner
- 14. Daten von Radio-Gruppe in benutzerdefinierten Listenansicht abrufen
- 15. Fehler beim Abrufen von Datensätzen mit benutzerdefinierten Abfrage in Liferay
- 16. Die Ereignisquelle von benutzerdefinierten Ereignissen in Vue abrufen?
- 17. Filling Array mit benutzerdefinierten Klasse - Abrufen von Werten
- 18. Abrufen von benutzerdefinierten Eigenschaften und Version mit OpenXML
- 19. Wert eines benutzerdefinierten Attributs mithilfe von JavaScript oder Jquery abrufen
- 20. Abrufen von selecteditem aus einer benutzerdefinierten WPF-Combobox
- 21. C# LINQ to Entities: Abrufen von benutzerdefinierten Objekte
- 22. Abrufen der benutzerdefinierten Objekte aus Sammlung von Sammlungen Objekt
- 23. Internes Verzeichnis des benutzerdefinierten Verzeichnisses abrufen
- 24. Abrufen benutzerdefinierter Produktfeldwerte in benutzerdefinierten Feldern
- 25. Informationen von "QWidget" abrufen
- 26. Abrufen einer benutzerdefinierten Domäne mit React auf Github Seiten
- 27. Abrufen von Daten aus flachen JSON in HTML
- 28. Wordpress benutzerdefinierten Beitrag von benutzerdefinierten fileds
- 29. Erstellen von benutzerdefinierten Benachrichtigung mit benutzerdefinierten Ansicht
- 30. Kann den ausgewählten Wert von Spinner nicht von meinem benutzerdefinierten Listview-Adapter in Xamarin abrufen. C#
sogar ich auch in ios an derselben Stelle stecken bin :( – Gulshan
@Paritosh Ich habe auch das gleiche Problem in iOS Bitte lassen Sie mich wissen, wenn Sie die Antwort dafür haben .. –
@MaheshNarla Ich bin immer noch in diesem stecken, sobald ich eine perfekte Lösung für diese habe, werde ich Sie auf jeden Fall wissen lassen. –