gpt4 book ai didi

ios - iOS:无法获取XMPP聊天的脱机消息

转载 作者:行者123 更新时间:2023-12-01 22:41:02 24 4
gpt4 key购买 nike

在文档和XMPPframework示例代码之后,我面临在线状态问题。我已经写了一个聊天应用程序。

问题:当用户1和2联机时,我成功获取了状态,他们可以彼此聊天。但是,当用户2通过(Wifi关闭/ 3G关闭)物理脱机时,用户1并未从XMPP获得脱机状态,因此,当用户2联机时,从该时刻发送的所有消息都将丢失。

  • 似乎由于未在XMPP中通知用户2或将其存储为脱机,因此它没有存储脱机消息以在用户2联机时推回给用户2。
  • 我尝试通过显式向XMPP写入[goOffline]调用来解决此问题,但是由于该调用在“用户2”的“发送日志”中显示,但在用户1的“RECV日志”中未从XMPP接收到。消息在两者之间丢失。
  • 还尝试了与其他来源的回复。
  • 设置状态为可用并发送XMPP
  • 优先级更改为非负值
  • XMPPA正在完成工作,但这不是我想要的。
  • 服务器端Mod_zero推送启用,但有时仅获得第一条消息推送通知。
  • 对用户的ejabberd.cfg文件设置限制和脱机消息限制。
  • 请求脱机消息提取。

  • 谁能帮我这个?

    最佳答案

    听起来您的问题出在服务器级别。服务器认为用户在线,因此发送消息但没有人得到。这确实不是一个简单的解决方案。

    1。
    最好的解决方案是交货收据。基本上,当邮件发送给您的客户时,您的客户会返回确认收货的确认信。如果服务器未收到该收据,它将每隔n次重新发送该消息。根据您的XMPP服务器,您可能会找到已经解决的解决方案,而不是必须推出自己的解决方案。

    2。
    可能的破解方法是让您的服务器始终存储并传送最后10条消息,然后在客户端丢弃重复的消息……这还取决于您的服务器实现。 XMPP MUC和PubSub具有沿这些方面的资源。

    对于长期可扩展的解决方案,您需要在服务器和客户端级别都进行处理。

    关于ios - iOS:无法获取XMPP聊天的脱机消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29407557/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com