[Client] Implement SSE reconnect with Last-Event-ID
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 66/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- php
- Ambito
- api, networking
Direzione di ricerca
Inizia da src/Client/Transport/HttpTransport.php::processSSEStream e segui l’analisi SSE esistente e la gestione dello stato del flusso. Aggiungi la copertura dei test unitari per il tracciamento degli ID degli eventi e la riconnessione, quindi esegui lo scenario di conformità sse-retry; il lavoro è completato quando le riconnessioni riprendono con Last-Event-ID e la politica di retry viene rispettata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
Per the MCP Streamable HTTP transport spec, when an SSE stream disconnects the client SHOULD reconnect using Last-Event-ID to resume the stream without losing notifications. src/Client/Transport/HttpTransport.php::processSSEStream currently abandons the stream on EOF.
Scope
- Track the most recent
id:line per active stream. - On unexpected EOF (stream still expected open — pending request unresolved, or session active), reconnect with:
GET <endpoint>+Accept: text/event-streamMcp-Session-IdheaderLast-Event-ID: <id>header
- Configurable retry policy: backoff (1s, 2s, 4s, capped at 10s) + max attempts (default 5).
- Respect
retry:SSE field when present.
Conformance scenarios unblocked
sse-retry.
Dependencies
Independent — can run in parallel with auth work.
Acceptance
- Unit tests for ID tracking + reconnect with Last-Event-ID.
- Conformance:
sse-retrypasses.
cc @soyuka
- Lingua principale
- PHP
- Stelle
- 1.6k
- Fork
- 173
- Merge medio
- 2g 49m
- PR unite (30g)
- 23
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di modelcontextprotocol/php-sdk
-
[Server] Handler type uses bare Closure, hard to decorate RegistryInterface under strict PHPStan ApertaServer
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
modelcontextprotocol/php-sdk#468 · 2 commenti ·
-
needs confirmation needs maintainer action Server
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/php-sdk#398 · 1 reazione ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/php-sdk#370 ·
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
modelcontextprotocol/php-sdk#510 · 1 commento ·
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
modelcontextprotocol/php-sdk#504 ·
Tutte le issue di modelcontextprotocol/php-sdk
Issue simili
-
sync-en
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
-
[6.x]: "Cannot use object of type stdClass as array" loading Users index (regression of #19182) Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
getgrav/grav-plugin-api#45 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
RSS-Bridge/rss-bridge#5098 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
phingofficial/phing#2025 ·