如果我运行自己的推送通知服务器,我还需要 FCM 吗?

Posted

技术标签:

【中文标题】如果我运行自己的推送通知服务器,我还需要 FCM 吗?【英文标题】:If I run my own push notification server do I still need FCM? 【发布时间】:2019-07-10 02:27:32 【问题描述】:

我刚刚阅读了很多关于推送通知服务器、自托管服务器以及云的信息。而且我对一个方面非常困惑。

我的 android/ios 应用需要为超过一百万台使用同一应用的设备推送通知。现在没有这种规模的免费服务,付费服务会导致月费过高,所以我考虑使用开源解决方案运行自己的服务器。我检查了很多,但parse 似乎是最合适的。但他们说它使用 FCM,我从谷歌定价中知道它仅对有限数量的注册设备免费。我认为托管我自己的推送服务器可以省去这些费用;但似乎不是;那有什么好处呢?直接使用FCM不是更好吗?

【问题讨论】:

如Firebase pricing page 所示,Firebase 云消息传递是完全免费的。您在哪里发现可以通过 FCM 向其传递消息的设备数量存在限制? @FrankvanPuffelen 我在这里读到:***.com/questions/37961625/firebase-fcm-usage-limits 没有任何关于定价的内容,提到的所有限制都是关于在单个 API 调用或单个设备中可以完成的操作。 你是对的;我的错;我理解错了 【参考方案1】:

向 Android(使用 Google Play 服务)和 iOS 发送推送通知将始终分别使用 FCM 或 APNS。原因是这些服务内置在操作系统中,或者比常规应用程序更接近操作系统可以运行并从中获得可靠性和电池寿命优势。 FCM 和 APNS 都是完全免费且不受限制的,尽管两者都有配额来保护服务免受滥用。

有许多服务(例如 Parse Push、Airship、OneSignal 等)构建在 FCM 和 APNS 之上,以提供更高级别的消息传递操作。但在较低级别,这些将使用 APNS 和 FCM 来实际传递消息。

这也是您在考虑构建自己的服务器时必须考虑的问题:该服务器实际上会做什么来将消息传递到设备?如果您不使用 FCM/APNS,您如何将消息发送到设备,尤其是当用户没有积极使用应用程序时?

【讨论】:

好吧,现在我明白了,所以这些服务(如 Parse Push、Airship、OneSignal 等)仅用于增加价值或高级功能?并且不绕过 FCM。 但是已经有谷歌分析用于统计,运行我自己的 Parse 实例(当然会使用 FCM)比直接使用谷歌的监控工具有什么优势 两者可能都有优点和缺点,否则似乎不太可能有人(我非常尊重他)会构建 Parse Push,反之亦然,任何人都不会不 使用它。这完全取决于您的用例和您的需求,这就是为什么在 Stack Overflow 上建议您使用其中一种是题外话。我建议您尝试一下听起来最吸引您的方法,如果您在使用它时遇到问题,请报告。

以上是关于如果我运行自己的推送通知服务器,我还需要 FCM 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在后台 laravel 中运行推送通知循环?

应用程序强制停止后 FCM 推送通知有效吗?

如果应用程序终止,则未收到 iOS FCM 推送通知

来自通知中心的推送通知不起作用,但在 FCM 中它正在工作

使用FCM从服务器发送推送通知

iOS FCM推送通知不能在后台快速工作?