Ejabberd延迟交付时间戳

问题描述:

我们使用ejabberd作为我们的xmpp服务器,并将iphone xmppframework用于客户端。 问题是,当我们获得离线消息时,写入消息的时间戳是实际的日期/时间格式,但服务器的时区与客户端时区不同,因此此时事情变得混乱。Ejabberd延迟交付时间戳

我们在查询用户的最后活动(XEP-0012)时使用了相同的方法,但在上一个活动xep中,服务器将信息返回为“用户最后登录到服务器多少秒前”,因此通过这种方式,我们可以将秒差应用到我们的客户时间,并找到消息传递日期/时间,以便在上次活动查询中没有问题。

但在延迟交付,ejabberd发送一个确切的日期和时间价值和客户混淆有关转换(每个客户端的日期和时间可能会从彼此非常不同)

有谁知道怎样才能解决这个问题问题?有没有什么办法可以配置ejabberd来返回“秒通过信息”,直到离线消息发送?

顺便说一句,我们正在使用最新的ejabberd版本。

感谢

XEP-0091 (Legacy Delayed Delivery)说:

的时区被理解为UTC。

因此,您需要将UTC的时间转换为客户端的本地时间,以获得正确的结果。

较新的规范,XEP-0203 (Delayed Delivery)还说:

[...]必须以UTC表示你说

+0

,这样是没有办法改变的标记值作为LastActivity XEP(几秒前) – tolgatanriverdi