FCM下游消息未遵循优先级/ time_to_live #Askfirebase

时间:2016-08-02 11:20:46

标签: android firebase google-cloud-messaging android-notifications firebase-cloud-messaging

之前我曾经广泛使用过GCM 3.0,实际上它是消息传递应用程序的主干。但是,既然现在有一个新的应用程序的FCM,我正在使用FCM。现在,我看到我推送它的下游消息的奇怪行为。这是我试图推动的内容。

String json = "{\n" +
                "  \"to\": \""+ token + "\",\n" +
                "  \"priority\": \"high\",\n" +
                "  \"time_to_live\": 0 ,\n" +
                "  \"data\": " + dataJson +
                "}";
        HttpClient httpClient = HttpClientBuilder.create().build();
        HttpPost post = new HttpPost(FCM_URL);
        post.addHeader("Content-Type", "application/json");
        post.addHeader("Authorization","Key="+SERVER_KEY);
        StringEntity postingString = new StringEntity(json);//gson.tojson() converts your pojo to json
        post.setEntity(postingString);
        post.setHeader("Content-type", "application/json");

        HttpResponse resp = httpClient.execute(post);

现在,我正面临着这些奇怪的行为。

  • 优先。 即使我保持优先级,我也不会在设备休眠时收到消息(特别是在棉花糖中打瞌睡。
  • time_to_live。 由于TTL设置为0,因此该消息应该是即时发送的,也可以是丢弃的,但在我的情况下,它会在手机退出睡眠时传送(有时候好几个小时后)
  • 重复。 我现在通过验证有效负载处理的较小优先级问题是重复传递。很多次,我收到了重复的邮件。

前两个问题是不可接受的,因为它打破了整个体验。看起来消息不是尊重 TTL 优先键。我尝试添加 collapse_key delay_until_idle 参数。但随后整个交付完全不稳定。甚至无法弄清楚发生了什么。

0 个答案:

没有答案