【问题标题】:Objective-C XMPPFramework Offline QueuesObjective-C XMPPFramework 离线队列
【发布时间】:2012-01-30 05:18:42
【问题描述】:

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

【问题讨论】:

  • 离线消息是 XMPP 服务器的责任。你的服务器日志是怎么说的?
  • 感谢埃里克的回复。当我再次可以访问日志时,我会回到这个问题。
  • @marklar 你有没有得到这个?当我使用图书馆时,我也没有收到离线消息

标签: objective-c ios xmppframework


【解决方案1】:

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

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

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

【讨论】:

  • 嘿,我们正在从 ejabberD 切换到 Tigase。我正在构建应用程序的聊天组件。当我再次开始执行 xmpp 组件时,将返回此线程并提供结果。
  • @eric 当我们处于离线模式而不是在队列中获取消息? - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message when app is terminate than this method is not call rght ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多