3

我已经使用我的小型移动应用聊天程序设置并实现了 ejabberd 服务器。还为消息传递状态实现了 XEP-184。

但是我遇到了一个问题,我的应用程序如何知道我的消息是否确实已到达 ejabberd 服务器?

我的场景:我走进一个连接信号较弱的区域,信号勉强足以保持连接活跃,但经常超时。我试图发送一条消息,我怎么可能确认消息是否到达服务器?

希望我对我的问题足够清楚。提前致谢!

4

2 回答 2

1

我为此编写了一个 ejabberd mod,您可以在以下位置找到:

https://github.com/kmtsar/ejabberd-mods

于 2013-11-06T07:18:00.450 回答
0

一种可能的方法是实施XEP-0198 Stream Management。流管理是最新 ejabberd 版本中的标准功能。

有了这个,客户端可以要求服务器保留收到的节的计数,并在感兴趣时要求服务器确认收到的节的数量。

然后,客户可以了解是否收到了一个或多个节。

这可以对每个单独的节进行:客户端要求对最后发送的节进行 ack,并期望来自服务器的 ACK。

理论上,您可以只实现“基本确认方案”——不需要完整的 XEP(包括流恢复)。

于 2014-01-28T08:55:34.600 回答