推送通知是否会导致服务器上的连续轮询?

时间:2016-10-05 11:15:55

标签: push-notification google-cloud-messaging polling firebase-cloud-messaging server-push

我正在使用Google频道从服务器执行推送通知。它运行正常,但是当我打开调试器窗口时,我可以看到很多轮询请求进入服务器。

这是推送通知的工作方式吗?如果是,那么它的用途是什么?

var token ="<%token%>";// This will creaete unique identifier(some id created by google api + ur key)

   channel = new goog.appengine.Channel(token);    
       socket = channel.open();    

   socket.onopen = function() {

     $('#messages').append('<p>Connected!</p>'); 

   };

感谢。

1 个答案:

答案 0 :(得分:0)

GCM不这样做。要参考它上面的official docs流程。

  

生命周期流程

     
      
  • 发送和接收下游消息。      
        
    • 发送消息。应用服务器将消息发送到客户端应用:      
          
      1. 应用服务器向GCM连接服务器发送消息。
      2.   
      3. 如果设备处于脱机状态,GCM连接服务器会将消息排队并存储。
      4.   
      5. 当设备在线时,GCM连接服务器会将消息发送给设备。
      6.   
      7. 在设备上,客户端应用程序根据特定于平台的实现接收消息。有关详细信息,请参阅特定于平台的文档。
      8.   
    •   
    • 收到消息。客户端应用程序从GCM连接服务器接收消息。
    •   
  •   

在最近的I / O 2016中也宣布,GCM的继任者现在是Firebase Cloud Messaging,它不仅拥有推送通知服务,而且还具有免费的其他功能(一个例子是分析)。

总的来说,使用GCM(或FCM)是一种比轮询更简单的方法。它处理您发送的消息和其他一些消息的排队。

我的部分回答here。还包括了解发送推送通知时Polling不理想的原因。