【问题标题】:Sending Notification to user when user is offline in android using XMPP当用户在 android 中使用 XMPP 离线时向用户发送通知
【发布时间】:2016-09-22 20:34:47
【问题描述】:

我使用带有 XMPP 服务器的 Smack 客户端实现了一个 Android 聊天应用程序。当用户在线时一切正常,现在当用户离线时(应用程序未处于运行状态)。我想使用 GCM 推送通知。

有没有办法实现这一点,我们有没有办法管理我们的服务器本身来处理这个问题?

【问题讨论】:

  • 应用离线是指应用处于stopped/killed状态吗?
  • 是的!那时如何像whatsapp一样通知用户消息
  • 当您的应用完全停止/终止时,您无法收到通知。我在我的answer 中提到了这个post。如果它只是关闭是可能的,因为后台服务可能仍在运行。
  • @McAwesomville 那么当他不在时如何通知用户新消息?我正在考虑在openfire的离线表上触发。
  • 您好,您找到解决方案了吗?

标签: android push-notification google-cloud-messaging xmpp smack


【解决方案1】:

您可以在用户在线或不在线但设备有互联网时发送推送通知。您拥有所有设备设备令牌,因此当您向特定用户发送消息时,请使用他的设备令牌并发送推送通知。

【讨论】:

  • 我说的是当应用程序运行时,消息由 xmpp 传递。但是当应用程序没有运行/不在后台时,我想发送推送。我知道 gcm 是如何工作的,但我不知道如何在服务器本身触发该触发器
【解决方案2】:

我也面临这个问题。我正在按照以下步骤解决这个问题:

  1. 使用将包含每个 JID 的用户 FCM-TOKENS 的数据库开发 Web 服务(ASP 或 PHP 或 ...)
  2. 在 android 设备上开发 FCM 并在刷新时将 TOKEN 发送到我的 WebService 并将其保存在 db 中。
  3. 在 openfire 中激活“CallBackOnOffline”插件。 (当收到消息但收件人不可用时,将带有 JSON 的 POST 请求发送到定义的 url)
  4. 将“服务属性”中的“plugin.callback_on_offline.url”设置为我的 WebService。因此消息和 jid 将被发送到我的网络服务。
  5. 现在从我的 Web 服务数据库中获取 FCM-TOKEN 并向 FCM 发送包含消息正文和标题的请求。

【讨论】:

    猜你喜欢
    • 2015-07-27
    • 2013-04-12
    • 1970-01-01
    • 2023-03-22
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多