Ejabberd推迟了交货时间戳

时间:2016-08-25 13:23:16

标签: erlang xmpp ejabberd xmppframework

我们将ejabberd用作客户端的xmpp服务器和iphone xmppframework。 问题是当我们得到离线消息时,消息中写入的时间戳是实际的日期/时间格式,但服务器的时区与客户端时区不同,所以此时事情变得一团糟。

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

但是在延迟交付时,ejabberd发送了确切的日期和时间值,客户对转换感到困惑(每个客户的日期和时间可能彼此非常不同)

有谁知道我们如何解决这个问题?有没有办法配置ejabberd返回“秒传递信息”直到离线消息发送?

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

由于

1 个答案:

答案 0 :(得分:1)

XEP-0091 (Legacy Delayed Delivery)说:

  

时区被理解为UTC。

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

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

  

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