title: Server push notification implementation
body: <p>Group,</p>
  
  <p>I am planning to implement my own Server push notification server to Android/IOS apps. So My application server (which may be implemented through NodeJs) will contact that Notification Server to push messages to devices. So i surfed through internet and found the below existing solutions. <BR></p>
  
  <blockquote>
    <p>Google cloud messaging</p>
    
    <p>Apple push notification service</p>
    
    <p>Firefox os push notifications</p>
    
    <p>Microsoft push notification service</p>
  </blockquote>
  
  <p><BR>
  Q1) <BR>
  On their respective sites; they were informing only about how to use their notification Server. However i need info on how they implemented their server push. <BR><BR></p>
  
  <p>Please tell me; are they following any of this below? </p>
  
  <blockquote>
    <p>Polling</p>
    
    <p>Long polling</p>
    
    <p>Streaming</p>
    
    <p>Server Sent Events</p>
    
    <p>TLS, SSL or TCP socket connections with Client</p>
    
    <p>XMPP</p>
  </blockquote>
  
  <p><BR>
  Q2) <BR></p>
  
  <p>Below two methods are claiming that though my app is not running; they can still be able to sent notification to APP? How is that possible?</p>
  
  <blockquote>
    <p>Apple push notification service</p>
    
    <p>Firefox os push notifications</p>
  </blockquote>
  
  <p><BR>
  Q3)<BR> </p>
  
  <p>In Firefox os push notifications; they have informed that they were avoiding keep-Alive to save battery life. My question is without keep-alive how to determine the connection is still alive or not ?</p>
  
  <p><BR>
  Q4)<BR> </p>
  
  <p>Is this all these (GCM/APNS/FireFox OS) implementation is only Server side pushing, and won't accept requests from Client. Am i correct?  <BR> 
  So still my server has to handle millions of device requests other than push messages, right? <BR>
  If i use websocket between my own notification server and client devices, do i need to maintain one more websocket connection between my application server and clients to receive requests from devices ?</p>