【问题标题】:Ejabberd Message Acknowledgment from Server来自服务器的 Ejabberd 消息确认
【发布时间】:2019-07-01 04:06:56
【问题描述】:

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

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

我的场景:我走进一个连接信号较弱的区域,信号强度不足以保持连接正常,但经常超时。我尝试发送消息,如何确认消息是否到达服务器?

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

【问题讨论】:

  • 嗨,你找到解决这个问题的方法了吗?如果有的话我会很高兴知道的……谢谢!

标签: ejabberd


【解决方案1】:

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

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

【讨论】:

  • 我要试试这个mod,如果我在应用这个mod时遇到任何问题,我可以给你发消息吗?还是谢谢。
  • 是的,当然,虽然我不再从事这项工作,但在 Github 上看到其他人提供了帮助。
【解决方案2】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 2018-05-10
    • 2011-10-24
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多