Unable to open too many DevTools pages due to browser per-host connection limit being exhausted by SSE connections
- Vorherrschende Sprache
- Dart
- Sterne
- 1.7k
- Forks
- 404
- Ø Merge
- 6 T. 17 Std.
- Gemergte PRs (30 T.)
- 18
Beschreibung
Moving this from https://github.com/Dart-Code/Dart-Code/issues/5229.
If you run DevTools and open ~5 tabs for it, you'll find you can't open any more. This appears to be because the SSE connections are tying up the maximum number of connections Chrome allows to a single host.
From my testing of opening many https://echo.websocket.org/.ws pages, I _think_ WebSockets are not counted towards this limit, so the solution may be to migrate the SSE connections to WebSockets. However, I don't know if there may be internal issues with WebSockets that led to SSE being used initially (@kenzieschmoll do you know? there's currently a mix of WS + SSE, so I presume WS must work everywhere now?).
Another option may be to use HTTP2 (so requests can share connections), but it's not clear to me if Dart has a HTTP2 server (I found https://github.com/dart-lang/http2 but it doesn't look like a complete solution?).
Beitragsleitfaden
Rechercherichtung
Beginne damit, das Problem mit etwa fünf DevTools-Tabs zu reproduzieren, und untersuche, wie die bestehenden SSE- und WebSocket-Verbindungen hergestellt werden. Ermittle, ob der Verbindungsansatz das per-host-Limit von Chrome umgehen kann; abgeschlossen ist die Untersuchung, wenn das Öffnen zusätzlicher DevTools-Seiten nicht mehr fehlschlägt, weil das Verbindungslimit des Hosts ausgeschöpft ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- dart
- Bereich
- devtools, networking
- Issue-Typ
- Bug
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100