Hihi那里,
我已经使用我的小型移动应用程序聊天程序设置并实现了ejabberd服务器。已经为邮件传递状态实施了XEP-184。
但是我遇到了问题,我的应用程序如何知道我的消息是否确实已经到达了ejabberd服务器?
我的场景:我正走进一个弱连接信号区域,信号几乎不足以保持连接活动,但频繁超时。我试图发送一条消息,我怎么可能确认消息是否到达服务器?
希望我对我的问题很清楚。提前谢谢!
答案 0 :(得分:1)
我为此写了一个ejabberd mod,你可以在这里找到:
答案 1 :(得分:0)
可能的方法是实施XEP-0198 Stream Management。流管理是最新ejabberd版本的标准功能。
有了这个,客户端可以要求服务器保留收到的节的数量,并在有兴趣时请求服务器确认收到的节数。
然后,客户可以了解是否收到了一个或多个节。
这可以针对每个单独的节进行:客户端需要针对最后发送的节的ack,并期望来自服务器的ACK。
理论上你可以只实现“Basic Ack Scenarios” - 不需要完整的XEP(包括流恢复)。