Skip to content

Fix Strawberry Shake SSE subscriptions not streaming on Blazor WebAss…#16

Open
cliedeman wants to merge 2 commits into
fork-ci-basefrom
feat/ss-sse-subscription-streaming
Open

Fix Strawberry Shake SSE subscriptions not streaming on Blazor WebAss…#16
cliedeman wants to merge 2 commits into
fork-ci-basefrom
feat/ss-sse-subscription-streaming

Conversation

@cliedeman

Copy link
Copy Markdown

…embly

Subscriptions over the HTTP (Server-Sent Events) transport only delivered events after the connection closed on Blazor WebAssembly. The browser fetch based HttpClient buffers the whole response body unless per-request response streaming is enabled, so the SSE reader never observed an event until the stream ended.

HttpConnection now sets the WebAssemblyEnableStreamingResponse request option for subscription operations via GraphQLHttpRequest.OnMessageCreated, so events surface as they arrive. The option is read only by the browser HTTP handler (ignored elsewhere) and is the default on .NET 10 and later, so query and mutation behavior and non-WASM clients are unaffected.

Refs ChilliCream#6944
Refs ChilliCream#8555

…embly

Subscriptions over the HTTP (Server-Sent Events) transport only delivered
events after the connection closed on Blazor WebAssembly. The browser fetch
based HttpClient buffers the whole response body unless per-request response
streaming is enabled, so the SSE reader never observed an event until the
stream ended.

HttpConnection now sets the WebAssemblyEnableStreamingResponse request option
for subscription operations via GraphQLHttpRequest.OnMessageCreated, so events
surface as they arrive. The option is read only by the browser HTTP handler
(ignored elsewhere) and is the default on .NET 10 and later, so query and
mutation behavior and non-WASM clients are unaffected.

Refs ChilliCream#6944
Refs ChilliCream#8555

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
StarWarsOnReviewSubGraphQLSSETest exercises the HTTP (Server-Sent Events)
subscription transport, but it also registered a WebSocket client that was never
resolved: the generated client wires the subscription executor on IHttpConnection,
so the WebSocket registration was dead and made the test read like a WebSocket
test.

Remove the unused AddWebSocketClient registration. The
StrawberryShake.Transport.WebSockets using is kept because the shared
TestServerHelper lives in that namespace, with a comment so it is not mistaken
for a WebSocket transport dependency.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant