希望找到熟悉https://github.com/robbiehanson/XMPPFramework/wiki的人
我的应用程序在运行该应用程序的其他手机和 iChat 之间发送和接收消息。我正在使用安装在机架空间上的 eJabberd。
问题是,如果我用我的手机向离线的手机发送消息,用户在他们的应用程序中上线时将不会收到消息(他们在 iChat 中也不会 - 消息永远不会排队)。
然而,当我通过 iChat 发送一条消息,然后在我的手机上登录我的应用程序时,这条消息通过得很好。
无论出于何种原因,我使用上面的 XMPPFramework 发送消息的方式似乎都不会触发服务器的排队功能。我已经按照规范 here 发送了一条看起来完全像这样的消息(使用不同的用户名)
message from='[email protected]/orchard' to='[email protected]'>
<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/