我们将ejabberd用作客户端的xmpp服务器和iphone xmppframework。 问题是当我们得到离线消息时,消息中写入的时间戳是实际的日期/时间格式,但服务器的时区与客户端时区不同,所以此时事情变得一团糟。
我们在查询用户的最后一个活动(XEP-0012)时使用相同的方法,但在上一个活动xep中,服务器将信息返回为“用户上次登录服务器的时间”,所以在此我们可以将秒差应用于客户的时间,并找到消息传递日期/时间,以便上次活动查询没有问题。
但是在延迟交付时,ejabberd发送了确切的日期和时间值,客户对转换感到困惑(每个客户的日期和时间可能彼此非常不同)
有谁知道我们如何解决这个问题?有没有办法配置ejabberd返回“秒传递信息”直到离线消息发送?
顺便说一句,我们正在使用最新的ejabberd版本。
由于
答案 0 :(得分:1)
XEP-0091 (Legacy Delayed Delivery)说:
时区被理解为UTC。
因此,您需要将时间从UTC转换为客户端的本地时间,以获得正确的结果。
较新的规范XEP-0203 (Delayed Delivery)也说:
[......]必须以UTC表示