【问题标题】:Meteor raix push notification lost due to no connectionMeteor raix 推送通知因无连接而丢失
【发布时间】:2023-03-15 21:04:01
【问题描述】:

我在 ios 和 android 的流星应用程序中使用push 通知。如果我向其发送通知的用户已连接到 Internet,则它可以正常工作。问题是,如果我向离线用户发送通知,并且当他在几个小时后连接到互联网时,通知未发送。关于如何克服这一点的任何见解。 以下是我发送通知的代码:

Push.send({
    from: '1234',
    title: title,
    text: text,
    notId : nId,
    gcm: {
        title: title,
        style:  'inbox',
    },
    query: {
        userId: {
            $in: userIds
        },
    }
}); 

【问题讨论】:

  • 我在您提供的 gitRepo 中找不到 TTL(生存时间)选项。通常有一个选项。您可以在此处阅读更多相关信息 developers.google.com/cloud-messaging/concept-options
  • 抱歉回复晚了。包括 TTL 为我解决了这个问题。请将此作为答案发布,我很乐意接受。
  • 你的问题已经解决了。。请分享给遇到同样问题的其他人可以得到帮助:)

标签: meteor push-notification


【解决方案1】:

我在您提供的 gitRepo 中找不到 TTL(生存时间)选项。通常有一个选项。您可以在此处阅读更多相关信息 concept options

更新
New Link

消息的生命周期

当应用服务器向 FCM 发布消息并且 收到返回的消息 ID,这并不意味着该消息是 已经交付给设备。相反,这意味着它已被接受 交付。消息被接受后会发生什么取决于 很多因素。

在最佳情况下,如果设备连接到 FCM,则 屏幕已打开且没有节流限制,消息为 马上送到。

如果设备已连接但处于打盹状态,则会发送一条低优先级消息 由 FCM 存储,直到设备退出打盹。这就是 collapse_key 标志起作用:如果已经有消息带有 存储并等待相同的折叠密钥(和注册令牌) 传递,旧消息被丢弃,新消息接受它 地方(即旧消息被新消息折叠)。然而, 如果没有设置折叠键,则新旧消息都是 存储以备将来交付。

如果设备未连接到 FCM,则消息将一直存储到 建立连接(再次尊重折叠键规则)。 建立连接后,FCM 将所有未决消息传递到 设备。如果设备不再连接(例如,如果 它是出厂重置),消息最终超时并且是 从 FCM 存储中丢弃。默认超时为四个星期,除非 time_to_live 标志已设置。

要更深入地了解消息的传递:

  1. 对于 Android 和 iOS:请参阅 FCM 报告仪表板,其中记录 在 iOS 和 Android 设备上发送和打开的消息数量, 连同“展示次数”(用户看到的通知)的数据 Android 应用。
  2. 对于 Android:如果您希望在应用程序时收到通知 成功接收到消息,可以使用 遵循指南的delivery_receipt_requested 功能。 这需要您设置 XMPP 服务器。
  3. 对于 Android、iOS 和 Web:您可以使用 InstanceID API 检查 您通过 FCM 定位的设备的最近日期 注册令牌已与 FCM 建立连接。

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2014-04-04
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 2013-07-16
    • 1970-01-01
    相关资源
    最近更新 更多