如何获取 FCM 即时交货状态

Posted

技术标签:

【中文标题】如何获取 FCM 即时交货状态【英文标题】:How to get FCM Instant delivery status 【发布时间】:2018-03-27 04:54:59 【问题描述】:

我怎样才能获得像现在这样的 FCM 即时交货状态,或者永远不会。例如,如果我向特定设备发送推送消息,如果设备处于离线状态,我想立即获得错误状态。我已经尝试了带有 delivery_receipt_requested 标志的 XMPP 协议,但是只要设备重新联机,它就会成功响应。但我希望 FCM 现在或永远不会有交货状态。

【问题讨论】:

FCM Notification Delivery Report的可能重复 ***.com/questions/41700719/… ***.com/questions/40781933/… @NileshRathod 我想这不是重复的问题。我已经尝试过您提供的链接,但没有运气。我希望 FCM 交付状态立即而不是当它以编程方式到达时 重复的帖子站着。如果没有 XMPP 协议,您想要的用例是不可能的。 FCM 的工作方式是从您的服务器发送消息将其定向到 FCM 服务器,在该服务器排队发送给客户端。您可以收到的最快响应是您的 App 服务器和 FCM 服务器之间的通信结果。 【参考方案1】:

FCM 不提供您想要的功能。另一种方法是使用实​​时数据库来实现“存在系统”。一个样本是provided in the docs。然后,您可以使用设备的在线状态来决定向其发送哪些消息。

【讨论】:

不错!谢谢+1,但我认为可以以某种方式轻松完成。是否有其他替代方法来确定设备已与服务器连接或准备好获取 fcm 推送.. 我会尝试您的解决方案 您可能还想尝试使用Instance ID Service。您可以获得设备的“connectionType”,但我不知道状态的实时性如何。它可能不是设备是否已连接的真实指示。

以上是关于如何获取 FCM 即时交货状态的主要内容,如果未能解决你的问题,请参考以下文章

FCM通知交付报告

如何使用 FCM 在 phonegap 中获取推送通知值?

如何使用 FCM (iOS) 获取远程通知的内容?

如何以编程方式获取 FCM 发送、打开和转换的报告? [复制]

双向身份验证如何如此瞬时?

如何获取 FCM-Django 推送通知的 registration_id (flutter app)