将聊天消息传递给离线用户的问题
Posted
技术标签:
【中文标题】将聊天消息传递给离线用户的问题【英文标题】:Issues with delivering chat messages to offline user 【发布时间】:2013-03-13 07:00:36 【问题描述】:当其中一位用户“离线”时,我在聊天中传递消息时遇到问题。 当初始化一对一聊天并且两个用户正在聊天时,正在传递消息并且一切正常,但是当其中一个用户的应用程序进入后台时,另一个用户继续发送消息。看起来消息正在发送、保存到历史记录和缓存中(我记录了它),但是当其他用户重新联机并检索历史记录时 - 这些消息不会出现。
在日志中,我看到它们在应用重启后出现延迟:
2013-03-13 01:14:42.983 MyApp[2314:1103]
QBChat/xmppStreamDidReceiveMessage:
<message xmlns="jabber:client" id="0" type="chat" from="XXXXX-XXXX@chat.quickblox.com"
to="XXXXXX-XXXX@chat.quickblox.com">
<body>I try again</body>
<delay xmlns="urn:xmpp:delay" from="chat.quickblox.com" stamp="2013-03-13T07:58:14.455+0000">
整个消息传递过程是使用 SimpleSample 聊天中的代码构建的 (另外,我还没有使用推送通知)。
请你就这个问题给我一些建议吗?
谢谢。
更新:重新安装应用程序后,没有检索到与用户的消息历史记录,这意味着,我猜,我所说的历史记录存储在缓存中。好像我在从服务器检索历史记录时遇到问题。我在“ChatDidReceiveMessage”中尝试了“message.delayed = 1”,但没有帮助。
【问题讨论】:
【参考方案1】:进入后台时必须退出聊天,进入前台时必须重新登录。
在这种情况下,您的消息将被正常接收
【讨论】:
谢谢!能否请您告诉我一些关于我在设备上删除并重建应用程序后未检索到的聊天记录? 请在此处阅读聊天记录管理quickblox.com/developers/… @IgorKhomenko :我尝试了一个非常简单的用例,我向已经注销的用户发送消息,现在当该用户登录时,他/她应该收到发送的消息,但他没有'没有收到那条消息。我正在使用 QuickBlox 并使用 QuickBlox SDK 提供的 Sample 尝试了这个东西。对此有什么想法吗?以上是关于将聊天消息传递给离线用户的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xmpp smack 或 asmack 中将文件发送给离线用户?
如何知道用户是不是正在打字或消息是不是已在聊天应用程序中传递给他