如何从javascript(适用于Chrome)注册GCM主题

How to get registered into GCM topics from javascript (for Chrome)

本文关键字:注册 GCM 主题 Chrome 适用于 javascript      更新时间:2023-09-26

这里有一个关于如何在Chrome中实现Google Cloud Messaging (GCM(的很好的文档。但是我在这里或任何地方都没有找到任何有关如何使用 javascript(适用于 Chrome(订阅主题的参考。

在这里,我找到了如何为Android执行任务的参考:https://developers.google.com/cloud-messaging/topic-messaging#subscribe-to-a-topic

Java代码(Android(用于在GCM中订阅主题:

private void subscribeTopics(String token) throws IOException {
    GcmPubSub pubSub = GcmPubSub.getInstance(this);
    for (String topic : TOPICS) {
        pubSub.subscribe(token, "/topics/" + topic, null);
    }
}

我不在寻找什么

我不是在寻找Chrome应用程序/扩展程序的方法。

我想要什么

我想向所有用户发送推送通知。到目前为止,我知道这可以通过两种方式实现:

  1. 将消息推送到主题
  2. 或者我必须:"您需要发送设备的注册 ID 列表,并且此列表不应超过 1000,如果您想向超过 1000 台设备发送消息,这是 GCM 的限制,那么您需要以 1000 块的形式打破列表。

我想避免第 2 点。

我的问题

那么,我的问题是有没有办法使用 Javascript for Chrome 浏览器(用于网页(订阅 GCM 的主题?如果有,那么该怎么做?

Web 推送不支持 GCM 主题。原因可能与即将添加的有效负载有关,这些有效负载需要为每个用户使用不同的密钥进行加密。

所以恐怕你被困在 2(。这当然取决于您有多少用户,但请记住,在当前的情况下,如果您要使用主题,您可以立即向数百万人发送消息。收到消息后,所有这些用户都将"https-ing"返回您的网站以获取显示通知所需的信息,因此,如果该主题被很多人使用,您将面临自己DOS的风险。以 1000 为一组进行批处理有助于限制传入流量。

发布一个答案以显示我评论的答案。


FCM 最近(2016 年 10 月 17 日(宣布了 Firebase JavaScript 库:

今天,我们宣布通过发布 JavaScript 库为 Firebase 云消息传递 (FCM( 提供 Web 支持。这扩展了我们当前的浏览器支持,实现了大大简化的实施过程,并为 Web 带来了主题和设备组消息传递等强大功能

--

借助 FCM JavaScript 库,您可以向单个设备、主题或设备组发送 Web 推送通知。通过在 Web 上添加主题支持,我们使开发人员能够向选择加入特定主题的 Android、iOS 和 Web 用户发送消息。若要利用主题和设备组,可以使用服务器端 API 来管理主题和组订阅。

链接到有关设置 JavaScript 客户端应用的 Firebase 文档。