title: How does Facebook chat avoid continuous polling of the server?
body: <p>I am trying to understand how Facebook's chat feature receives messages without continuously poling the server.</p>
  
  <p>Firebug shows me a single GET XmlHttpRequest continuously sitting there, waiting for a response from the server. After 5 minutes, this never timed out.</p>
  
  <p>How are they preventing timeout?</p>
  
  <p>An AJAX request can just sit there like that indefinitely, waiting for a response?</p>
  
  <p>Can I do this with JSONRequest? I see this at json.org:</p>
  
  <blockquote>
    <p>JSONRequest is designed to support
    duplex connections. This permits
    applications in which the server can
    asynchronously initiate transmissions.
    This is done by using two simultaneous
    requests: one to send and the other to
    receive. By using the timeout
    parameter, a POST request can be left
    pending until the server determines
    that it has timely data to send.</p>
  </blockquote>
  
  <p>Or is there another way to let an AJAX call just sit there, waiting, besides using JSONRequest?</p>