推送通知:为什么要使用亚马逊 SNS 而不是谷歌的 GCM/FCM?

24
我使用Phonegap Build为Android和iOS创建了一个移动应用程序。去年,我几乎完成了使用GCM(Google Cloud Messaging)进行远程推送通知的编写工作 - 这些通知可以通过苹果的APNS发送 - 但项目被搁置了。
今年,该项目被重新启动,我发现Google已经将一切都改成了Firebase(FCM)。然后,我读到了一些关于Amazon SNS处理通知的诱人描述。正当我开始认为SNS可能是更好的选择时,我注意到仍然必须设置GCM / FCM,并将所有详细信息传递给SNS。
那么,在我必须完成完整的FCM设置时,使用SNS有什么好处呢?!就我所看到的,两种服务似乎提供相同的功能:如果需要与APNS交互,则订阅主题,为您提供漂亮的API / SDK等。就我所见,应用程序代码和服务器端代码都不会更简单。为什么要在FCM之上再添加另一层(SNS)呢?
(我试图不让这成为基于观点的问题:我想知道SNS是否节省了我的精力,是否给我带来任何优势,或者是否增加了FCM没有的任何功能。)
2个回答

13

一些想法。

  1. 如果你已经在使用某些移动 AWS SDK,那么对于 SNS 来说使用它会更方便。
  2. 这也有助于让你的应用程序更小。
  3. 作为开发人员,你会更加愉快,因为 API 调用是有些统一的。
  4. 如果你的后端托管在 AWS 基础架构上,你可以使用 IAM 角色为 EC2 实例(也包括 Lambdas 等)进行调用,而无需访问密钥/秘密密钥。
  5. 你可以在 CloudWatch 中获得指标。

但 Firebase 云消息传递是免费的 :)


0

让我们先回答几个问题。

1.您是否想要开发、维护和运行代码以与GCM通信?
2.如果您选择为其他移动平台开发应用程序,是否希望为另一个平台(iOS、Kindle Fire)做同样的事情?
3.您是否想自己管理registration_id的更改?
4.如果通知稍微晚了几毫秒,您是否在意?
如果您对以上任何问题的答案都是“否”,我建议使用SNS向iOS、Android和Kindle Fire设备发送推送通知。

SNS与GCM通信以向Android设备发送通知。以下是SNS可以为您提供的内容:

简单的API可向异构平台发送通知。
管理应用程序registration_id。作为开发人员,您不必担心registration_id的更改。
具有良好的扩展性。如果您的应用程序变得非常流行,您不必担心管理基础架构。
可以容忍GCM停机和限流。


22
为什么你没有包含“全面披露”部分? https://www.quora.com/Which-is-best-to-use-Amazon-SNS-Google-Cloud-Messaging-or-Parse-in-terms-of-push-notifications-Why - Midnight Guest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接