Ejabberd延迟交付时间戳
问题描述:
我们使用ejabberd作为我们的xmpp服务器,并将iphone xmppframework用于客户端。 问题是,当我们获得离线消息时,写入消息的时间戳是实际的日期/时间格式,但服务器的时区与客户端时区不同,因此此时事情变得混乱。Ejabberd延迟交付时间戳
我们在查询用户的最后活动(XEP-0012)时使用了相同的方法,但在上一个活动xep中,服务器将信息返回为“用户最后登录到服务器多少秒前”,因此通过这种方式,我们可以将秒差应用到我们的客户时间,并找到消息传递日期/时间,以便在上次活动查询中没有问题。
但在延迟交付,ejabberd发送一个确切的日期和时间价值和客户混淆有关转换(每个客户端的日期和时间可能会从彼此非常不同)
有谁知道怎样才能解决这个问题问题?有没有什么办法可以配置ejabberd来返回“秒通过信息”,直到离线消息发送?
顺便说一句,我们正在使用最新的ejabberd版本。
感谢
答
XEP-0091 (Legacy Delayed Delivery)说:
的时区被理解为UTC。
因此,您需要将UTC的时间转换为客户端的本地时间,以获得正确的结果。
较新的规范,XEP-0203 (Delayed Delivery)还说:
[...]必须以UTC表示你说
,这样是没有办法改变的标记值作为LastActivity XEP(几秒前) – tolgatanriverdi