Web 推送通知,如何在不使用循环的情况下使用多个 UAID Post?

Web Push Notification, how to Post with multiple UAIDs without using loop?

我们如何post 向 url

中具有多个 UAID 的端点进行 Web 推送

UAID goes in the end of the URL

我正在 post 使用带有以下代码的单个 UAID 来 URL,它工作正常:“https://updates.push.services.mozilla.com/push/v1/-----UAID 到这里 -----” 但是我该如何处理多个 UAID?

URL url = new URL("https://updates.push.services.mozilla.com/push/v1/-----UAID goes here-----");
           HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
           urlConnection.setRequestMethod("POST");

       urlConnection.setRequestProperty("Content-Type", "application/octet-stream");


       urlConnection.setRequestProperty("content-encoding", "aesgcm128");
       urlConnection.setRequestProperty("ttl", "60");
       urlConnection.setDoInput(true);
       urlConnection.setDoOutput(true);
       final OutputStream outputStream = urlConnection.getOutputStream();

       outputStream.flush();
       outputStream.close();
       if (urlConnection.getResponseCode() == 201) {
           String result = readStream(urlConnection.getInputStream());
           System.out.println("PUSH OK: " + result);
       } else {
           InputStream errorStream = urlConnection.getErrorStream();
           String error = readStream(errorStream);
           System.out.println("PUSH" + "Not OK: " + error);
       }

我一直在寻找同样的东西,因为在 Chrome 中它允许您发送多个注册 ID。不幸的是,这似乎在 Mozilla 推送通知中不可用。

如果你想发送带有负载的推送消息,你也必须为 Chrome (FCM/GCM) 使用循环。因为根据 Push API 规范,payload 必须使用 asymmetric public 密钥加密,这是唯一的为您的每个客户(用户代理)。有关详细信息,请参阅以下链接:

  1. Push API specification
  2. Message Encryption for Web Push
  3. Web Push Payload Encryption