我使用Smack客户端和XMPP服务器实现了一款Android聊天应用程序。当用户在线时,一切都正常工作,但当用户离线(应用程序未在运行状态)时,我希望能够使用GCM来推送通知。是否有一种方法可以实现这一点,并且是否有一种方法可以管理我们的服务器本身来处理这个问题?
我也遇到了这个问题。我按照以下步骤解决: 开发一个带有数据库的 WebService(ASP 或 PHP 等),其中包含每个 JID 的用户 FCM-TOKENS。 在 Android 设备上开发 FCM,并在刷新时将 TOKEN 发送到我的 WebService 并保存在数据库中。 在 Openfire 中启用“CallBackOnOffline”插件。(当收到消息但接收者不可用时,它会向定义的 URL 发送带有 JSON 的 POST 请求) 在“服务属性”中设置“plugin.callback_on_offline.url”为我的 WebService。因此,消息和 JID 将被发送到我的 WebService。 现在从我的 WebService 数据库中获取 FCM-TOKEN,并向 FCM 发送请求,包含消息正文和标题。