Tigase 组件中的 addOutPacket
Posted
技术标签:
【中文标题】Tigase 组件中的 addOutPacket【英文标题】:addOutPacket in Tigase Component 【发布时间】:2013-11-19 13:26:58 【问题描述】:我正在 tigase 中实现 QOS 以确保消息的传递。下面列出了我的 QOS 步骤
按时间戳的排序顺序缓存每个消息包(编写、键入、停止等除外) 收到数据包的传递通知后,我将其从缓存中删除 在定期间隔后,会启动一个线程来检查仍然存在于缓存中的具有时间窗口的数据包 如果线程在该时间窗口内发现任何数据包(这意味着该消息未传递),因此线程需要再次发送它我的问题是如何在该线程中再次发送数据包。
我可以从线程中尝试 addOutPacket(现在不工作) 我应该在组件中实现我的 QOS 以便它可以轻松地执行 addOutPacket 或者有没有更好的方法来实现这一点非常感谢您的建议
编辑:
一些说明:
我们不会无限期地将消息保存在缓存中 我们将重试每条消息最多 3 次,之后我们会将未确认的数据包保存在离线存储中 如果我认为默认情况下在 Tigase 中启用了 XEP-0198,当服务器和客户端之间的连接丢失(不可恢复的故障)时,我们仍然会遇到消息丢失。如果网络层需要时间来检测不可恢复的故障,则发送到该连接的消息将永久丢失。在 EDGE 或互联网连接不稳定的情况下,我们会一直面临严重损害用户体验的问题。【问题讨论】:
【参考方案1】:Tigase 已经支持 XEP-0198 - 流管理扩展,其中包括数据包传递确认。因此,我不确定您是否真的需要为 Tigase 实施 QoS 系统。 请解释为什么 XEP-0198 不够好以及您要实现什么。 QoS 系统的真正含义是什么? 其他一些问题 - 当消息无法传递时会发生什么,比如说 100 次?你要无限期地重试吗?另一个问题。您可以在缓存中保留多少条消息?如果您的缓存已满并且您无法将新消息放入缓存中怎么办?您的 QoS 系统是否旨在为 1000 万连接用户处理每秒 10 万条消息的负载?
【讨论】:
以上是关于Tigase 组件中的 addOutPacket的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ubuntu 机器(localhost)中将组件 pubsub 配置为 tigase 服务器?