希望找到熟悉https://github.com/robbiehanson/XMPPFramework/wiki的人

我的应用程序在运行该应用程序的其他手机和 iChat 之间发送和接收消息。我正在使用安装在机架空间上的 eJabberd。

问题是,如果我用我的手机向离线的手机发送消息,用户在他们的应用程序中上线时将不会收到消息(他们在 iChat 中也不会 - 消息永远不会排队)。

然而,当我通过 iChat 发送一条消息,然后在我的手机上登录我的应用程序时,这条消息通过得很好。

无论出于何种原因,我使用上面的 XMPPFramework 发送消息的方式似乎都不会触发服务器的排队功能。我已经按照规范 here 发送了一条看起来完全像这样的消息(使用不同的用户名)

    message from='romeo@montague.net/orchard' to='juliet@capulet.com'>
  <body>
    O blessed, blessed night! I am afeard.
    Being in night, all this is but a dream,
    Too flattering-sweet to be substantial.
  </body>
</message>

不幸的是,结果相同。我一直试图找到一种方法来查看 iChat 的传出 XML 的样子,但无济于事。希望有人之前遇到过这个问题。

最佳答案

离线消息是服务器的责任。 XEP-0160: Best Practices for Handling Offline Messages 中解释了如何处理离线消息。

在客户端,您需要确保发送的消息节为“普通”或“聊天”类型。

您还需要确保在 eJabberd 中启用了离线消息存储。

关于Objective-C XMPPFramework 离线队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8673787/

10-12 16:08