flutter / flutter/devtools

Unable to open too many DevTools pages due to browser per-host connection limit being exhausted by SSE connections

Offen
#8,298 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
ide-integration P1
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.