Xmpp 在Tigase组件中添加OUTPACKET

Xmpp 在Tigase组件中添加OUTPACKET,xmpp,qos,tigase,Xmpp,Qos,Tigase,我正在tigase中实现QOS以确保消息的传递。下面列出了我的QOS步骤 以时间戳的排序顺序缓存每个消息包(撰写、键入、停止等除外) 在收到数据包的传递通知时,我将其从缓存中删除 每隔一段时间,就会启动一个线程来检查缓存中仍然存在的数据包,并设置时间窗口 若线程在那个时间窗口中发现任何数据包(这意味着消息并没有被传递),那个么线程需要再次发送它 我的问题是,我怎样才能在线程中再次发送数据包 我可以从线程中尝试添加输出包吗(它现在不工作) 我是否应该在组件中实现QOS,以便它可以轻松地执行添

我正在tigase中实现QOS以确保消息的传递。下面列出了我的QOS步骤

  • 以时间戳的排序顺序缓存每个消息包(撰写、键入、停止等除外)
  • 在收到数据包的传递通知时,我将其从缓存中删除
  • 每隔一段时间,就会启动一个线程来检查缓存中仍然存在的数据包,并设置时间窗口
  • 若线程在那个时间窗口中发现任何数据包(这意味着消息并没有被传递),那个么线程需要再次发送它
我的问题是,我怎样才能在线程中再次发送数据包

  • 我可以从线程中尝试添加输出包吗(它现在不工作)
  • 我是否应该在组件中实现QOS,以便它可以轻松地执行添加输出包
  • 还是有更好的方法来实现这一点
非常感谢你的建议

编辑:

一些澄清:

  • 我们不会无限期地将消息保存在缓存中
  • 我们将重试每条消息最多3次,然后将未确认的数据包保存在脱机存储中
  • 如果默认情况下在Tigase中启用了XEP-0198(我假设是这样),那么当服务器和客户端之间的连接丢失时,我们仍然会遇到消息丢失(无法恢复的故障)。如果网络层需要时间来检测无法恢复的故障,则发送到该连接的消息将永久丢失。在EDGE或不稳定的互联网连接的情况下,我们面临着持续严重损害用户体验的问题

Tigase已经支持XEP-0198-流管理扩展,其中包括数据包传递确认。因此,我不确定您是否真的需要为Tigase实现QoS系统。 请解释为什么XEP-0198不够好,以及您试图实现什么。你所说的QoS系统到底是什么意思?
还有几个问题-如果消息无法传递,比如说100次,会发生什么情况?你要无限期地重试吗?另一个问题。您可以在缓存中保存多少条消息?如果缓存已满,并且无法将新邮件放入缓存,该怎么办?您的QoS系统是否设计用于为1000万连接用户每秒处理100k消息的负载?

Tigase已经支持XEP-0198-流管理扩展,其中包括数据包传递确认。因此,我不确定您是否真的需要为Tigase实现QoS系统。 请解释为什么XEP-0198不够好,以及您试图实现什么。你所说的QoS系统到底是什么意思? 还有几个问题-如果消息无法传递,比如说100次,会发生什么情况?你要无限期地重试吗?另一个问题。您可以在缓存中保存多少条消息?如果缓存已满,并且无法将新邮件放入缓存,该怎么办?您的QoS系统是否设计用于处理1000万连接用户每秒100k的消息负载