Default draft protocol support: sessionless + handshake-less (SEP-2575 + SEP-2567) (#1610)
This commit is contained in:
parent
3368bb7349
commit
6c323e783b
1 changed files with 5704 additions and 712 deletions
|
|
@ -40,7 +40,9 @@ public sealed partial class StreamableHttpServerTransport : ITransport
|
|||
private readonly ILogger _logger;
|
||||
|
||||
private SseEventWriter? _httpSseWriter;
|
||||
#pragma warning disable MCP9006 // Stateful Streamable HTTP resumability types are obsolete but still wired up internally.
|
||||
private ISseEventStreamWriter? _storeSseWriter;
|
||||
#pragma warning restore MCP9006
|
||||
private TaskCompletionSource<bool>? _httpResponseTcs;
|
||||
private string? _negotiatedProtocolVersion;
|
||||
private bool _getHttpRequestStarted;
|
||||
|
|
@ -80,6 +82,7 @@ public sealed partial class StreamableHttpServerTransport : ITransport
|
|||
/// Gets or sets the event store for resumability support.
|
||||
/// When set, events are stored and can be replayed when clients reconnect with a Last-Event-ID header.
|
||||
/// </summary>
|
||||
[Obsolete(Obsoletions.LegacyStatefulHttp_Message, DiagnosticId = Obsoletions.LegacyStatefulHttp_DiagnosticId, UrlFormat = Obsoletions.LegacyStatefulHttp_Url)]
|
||||
public ISseEventStreamStore? EventStreamStore { get; init; }
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -357,6 +360,7 @@ public sealed partial class StreamableHttpServerTransport : ITransport
|
|||
}
|
||||
}
|
||||
|
||||
#pragma warning disable MCP9006 // Stateful Streamable HTTP resumability types are obsolete but still wired up internally.
|
||||
internal async ValueTask<ISseEventStreamWriter?> TryCreateEventStreamAsync(string streamId, CancellationToken cancellationToken)
|
||||
{
|
||||
if (EventStreamStore is null || !McpSessionHandler.SupportsPrimingEvent(_negotiatedProtocolVersion))
|
||||
|
|
@ -377,6 +381,7 @@ public sealed partial class StreamableHttpServerTransport : ITransport
|
|||
|
||||
return sseEventStreamWriter;
|
||||
}
|
||||
#pragma warning restore MCP9006
|
||||
|
||||
[LoggerMessage(Level = LogLevel.Warning,
|
||||
Message = "Sending server-to-client JSON-RPC request '{Method}' over the standalone GET SSE stream (SessionId: '{SessionId}'). " +
|
||||
|
|
|
|||
Loading…
Reference in a new issue