5

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

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

在 GCM 中订阅主题的 Java 代码(Android):

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. 或者我必须:“您需要发送设备的 reg id 列表,并且此列表不应超过 1000 这是 GCM 的限制,如果您想向 1000 多个设备发送消息,那么您需要打破列表1000 块。”

我想避免第 2 点。

我的问题

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

4

2 回答 2

2

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

所以我担心你被困在2)。这当然取决于您拥有多少用户,但请记住,如果您要使用主题,您可能会立即向数百万人发送消息。收到消息后,所有这些用户都会“https-ing”返回您的站点以获取显示通知所需的信息,因此如果该主题要被很多人使用,您将冒着 DOSing 自己的风险。以 1000 个为一组进行批处理有助于限制传入流量。

于 2016-02-19T09:24:59.810 回答
1

发布我评论的答案的可见性答案。


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

今天,我们发布了一个 JavaScript 库,宣布对 Firebase 云消息传递 (FCM) 的 Web 支持。这扩展了我们当前的浏览器支持,实现了一个非常简单的实施过程,并为网络带来了强大的功能,例如主题和设备组消息

--

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

链接到用于设置 JavaScript 客户端应用程序的 Firebase 文档。

于 2016-10-18T03:42:02.167 回答