【发布时间】:2019-04-27 09:41:12
【问题描述】:
我正在使用 ejabberd 服务器为 IOS 和 Android 开发一个聊天应用程序。我还为 ejabberd 编写了一个模块来获取发送到我自己的服务器 api 的离线消息。
我自己的服务器 api 将使用 FCM 向 IOS/Android 平台发送通知。
在客户端,如果应用程序在前台或后台,它将保持与ejabberd的连接,如果客户端收到消息,则ejabberd将发送消息传递状态。
我在应用程序终止(服务未运行)时遇到问题,这意味着它未连接到 ejabberd(离线)。如果我在此应用程序未终止的情况下向它发送消息,它将收到通知,但消息仍未送达。在应用终止时收到通知时如何将消息标记为已送达。
为了进一步解释,同样的功能在 whatsapp 上运行良好:
- 设备 A 已安装 whatsapp 并且 whatsapp 已关闭(终止)
- 设备 B 正在运行 whatsapp
- 设备 B 向设备 A 发送消息
- 设备A收到whatsapp通知
- 没有在设备 A 上做任何事情,设备 B 上的消息状态被标记为已传递。
如何使用 ejabberd 实现这个场景?
【问题讨论】:
标签: xmpp ejabberd whatsapp ejabberd-module ejabberd-hooks