14

我真的试图找到解决这个问题的方法,但没有。有一些线程与这个概念相关,但我没有找到一个全面的解决方案。

我有一个带有 Openfire 的服务器来发送消息。当两个用户都在线时,没有问题。但是,当用户离线时,我想发送推送通知,就像在 Whatsapp 中一样。我听说 Whatsapp 和其他 IM 应用程序使用修改版的 ejabber 发送推送通知,但不知道如何。

一种可能性是使用 GCM,但我不确定这是否是正确的方法。另外,我想避免轮询,以免耗尽电池寿命。

有谁知道对此的一些解决方案或有一个例子?

4

3 回答 3

11

我正在研究 openfire 并找到了一些不错的选择,我想与您分享。我在 github 中找到了一个插件,我将在本周对其进行测试。看来这将是一个很好的解决你的目标和我的目标:https ://github.com/meisterfuu/Openfire-GCM/

另一种选择是使用CallbackOnOffline插件,它使用 To 和 From 参数调用指定的 URL。此 url 可以是您的 Web 服务中的端点,并且使用该数据(To 和 From),您可以获得相关的 Id 以在您的基础中进行推送,并进行推送。

https://www.igniterealtime.org/projects/openfire/plugins.jsp

于 2016-03-16T20:14:27.353 回答
2

好吧,您可以将 GCM 与 XMPP 一起使用。新的GCM 云连接服务器允许您使用 XMPP 协议在服务器和 Android 应用程序之间进行双向(云到设备和设备到云)通信。

GCM 云连接服务器 (CCS) 允许第三方服务器通过使用 XMPP 协议与 Google 服务器建立持久的 TCP 连接来与 Android 设备进行通信。这种通信是异步和双向的。

于 2013-06-01T16:36:07.977 回答
-3

在 openfire 中,它会自动完成,当用户上线时,用户会收到消息。所以不用担心向离线用户发送消息,当用户在线时,消息会自动推送给用户。

于 2013-06-04T13:10:51.353 回答