2016-08-25 3 views
0

Wir verwenden ejabberd als unsere xmpp-Server und iphone xmppframework für Client-Seite. Das Problem ist, wenn wir die Offline-Nachrichten erhalten die Zeitangabe, die in der Nachricht geschrieben wird ist in tatsächlichen Datum/Uhrzeit-Format, aber die Zeitzone des Servers unterscheidet sich von den Clients Zeitzonen, so dass die Dinge an diesem Punkt unordentlich werden.Ejabberd verzögerte Lieferung timestamp

Wir verwenden einen gleichen Ansatz beim Abfragen der letzten Aktivität eines Benutzers (XEP-0012), aber in der letzten Aktivität xep gibt der Server die Informationen als "wie viele Sekunden hat sich der Benutzer zuletzt am Server angemeldet" zurück Auf diese Weise können wir einen Sekundenunterschied auf die Zeit unserer Kunden anwenden und das Datum/die Uhrzeit der Nachrichtenübermittlung finden, so dass die Abfrage der letzten Aktivität kein Problem darstellt.

Aber in Lieferverzug, ejabberd sendet ein genaues Datum und Uhrzeitwert und Kunden verwirrt über die Umwandlung (Datum und Uhrzeit des jeweiligen Kunden von jedem anderen sehr unterschiedlich sein können)

jemand, wie Weiß können wir beheben, dass Problem? Gibt es eine Möglichkeit, ejabberd so zu konfigurieren, dass Sekunden zurückliefern, bis eine Nachricht gesendet wird?

Übrigens verwenden wir die neueste ejabberd-Version.

Dank

Antwort

1

XEP-0091 (Legacy Delayed Delivery) sagt:

Die Zeitzone wird als UTC verstanden werden.

Sie müssen also die Zeit von UTC in die lokale Zeit des Clients konvertieren, um das richtige Ergebnis zu erhalten.

Die neuere Spezifikation, sagt XEP-0203 (Delayed Delivery) auch:

[...] MUST

+0

so dass Sie sagen, dass es keine Möglichkeit, in UTC ausgedrückt werden, den Markenwert als in sich ändern LastActivity XEP (vor wie vielen Sekunden) – tolgatanriverdi