在 asmack 中没有收到大量离线消息 [关闭]
Posted
技术标签:
【中文标题】在 asmack 中没有收到大量离线消息 [关闭]【英文标题】:Not getting large offline messages in asmack [closed] 【发布时间】:2014-07-23 12:09:57 【问题描述】:我正在使用来自 android 的 asmack 库连接到 XMPP 服务器。一切正常,除了接收大型离线消息时出现问题。
我一登录,就收到其他用户在离线模式下发送的小消息。但是,如果我在离线模式下他们发送一些大消息,那么我在登录时就不会收到这些消息。
请帮我找到解决办法。
这是日志猫显示的内容:
07-23 13:14:01.070: D/SMACK(16682): RCV (0): <message from='139@192.168.10.241' to='143@192.168.10.241/false' type='error' id='9lxwn-146'><state xmlns='jabber:state:event'><composing>true</composing></state><error code='500' type='wait'><resource-constraint xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Your contact offline message queue is full. The message has been discarded.</text></error></message><message from='139@192.168.10.241' to='143@192.168.10.241/false' type='error' id='9lxwn-145'><state xmlns='jabber:state:event'><composing>true</composing></state><error code='500' type='wait'><resource-constraint xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Your contact offline message queue is full. The message has been discarded.</text></error></message><message from='139@192.168.10.241' to='143@192.168.10.241/false' type='error' id='9lxwn-144'><state xmlns='jabber:state:event'><composing>true</composing></state><error code='500' type='wait'><resource-constraint xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Your contact offline message queue is full. The message has been discarded.</text></error></message>
主要错误是这样的:
您的联系人离线消息队列已满。该消息已被丢弃。
【问题讨论】:
【参考方案1】:您可以在服务器上扩展每用户离线消息存储限制
在离线消息策略中
如果您在服务器端使用 openfire,请转到服务器设置 > 离线消息
默认大小为 100 kb
【讨论】:
有没有办法从客户端知道剩余的离线限制。这意味着我怎么知道,还有这么多的限制? asmack 有什么方法吗? 不,我们无法在客户端获取它。但是您可以在服务器端手动将其增加到某个值。你能把它标记为答案吗 那么您能建议任何处理离线消息的最佳方法吗?我在服务器端使用 ejabbered。 很抱歉从未在 ejabbered 上工作过。我只用过openfire 处理大量离线消息有什么建议吗?假设我正在向另一个联系人发送 100 条离线消息,而我的服务器限制为 75,那么我如何知道这个限制并处理剩余的 25 条消息?以上是关于在 asmack 中没有收到大量离线消息 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xmpp smack 或 asmack 中将文件发送给离线用户?
无法使用 Gtalk 应用程序的 asmack api 获取离线消息