I develop a realtime app where every client creates an manages n realtime documents ( its like a bin board app with sticky notes, and every note is a own realtime document ).
In the Realtime Debug Console, I can see that several realtime documents are opened for my single instance of my realtime app.
I looked at this Question to understand what technology Google Drive uses to get real-time updates:
No-polling (what Google Drive does) takes advantage of how the browser can read data from the body of a request before the request is complete. So as collaborators do more typing and edits, the server appends more data to the current request. If certain limits are met (length of the content or duration of the request), the request completes, and the client initiates a new request with the server.
I can see in the Google Chrome Developer Tools -> Network Tab that for every loaded realtime document, I have an open XHR request for every loaded realtime document identified with the GET Parameter fileId
and as soon as one times out a new GET request to the server gets created and stays open:
If I now load 100 reatlime documents, I have all the time 100 GET requests ( one for every realtimeFileID ) that stay open and every time when one times out another one gets created as seen here in Google Chrome Developer Tools:
My Question is, I learned that browsers support max. ~simultaneous 10 HTTP GET requests from the same origin but I have here in chrome 100 open requests and every of them is in the Content Download
State, whch means for me that I have right now 100 open XHR requests in my ( unmodified ) google chrome browser.
All requests are in the same orignin https://drive.google.com/
only the GET parameters have different realtimeDocIDs