Ejabberd延迟交付时间戳



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

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

但是在延迟交付中,ejabberd发送了一个准确的日期和时间值,客户机混淆了转换(每个客户机的日期和时间可能彼此非常不同)

有谁知道我们如何解决这个问题吗?是否有办法配置ejabberd返回"秒传递的信息",直到离线消息发送?

顺便说一下,我们使用的是最新的ejabberd版本。

谢谢

XEP-0091 (Legacy Delayed Delivery)显示:

时区被理解为UTC。

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

新的规范,XEP-0203(延迟交付)也说:

[…必须用UTC

表示

最新更新