4

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

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

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

但是,当我通过 iChat 发送消息然后在手机上登录我的应用程序时,消息就可以通过了。

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

    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 的样子,但无济于事。希望之前有人遇到过这个问题。

4

1 回答 1

3

离线消息是服务器的责任。XEP-0160:处理离线消息的最佳实践中解释了如何处理离线消息。

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

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

于 2012-02-14T23:09:56.267 回答