-
Notifications
You must be signed in to change notification settings - Fork 10.7k
Consider SignalR Pull Model / Streaming for JavaScript and Java client #33859
Copy link
Copy link
Open
Labels
Blazor ♥ SignalRThis issue is related to the experience of Signal R and Blazor working togetherThis issue is related to the experience of Signal R and Blazor working togetherPriority:3Work that is nice to haveWork that is nice to havearea-signalrIncludes: SignalR clients and serversIncludes: SignalR clients and serversenhancementThis issue represents an ask for new feature or an enhancement to an existing oneThis issue represents an ask for new feature or an enhancement to an existing onefeature-blazor-jsinteropThis issue is related to JSInterop in BlazorThis issue is related to JSInterop in Blazor
Milestone
Metadata
Metadata
Assignees
Labels
Blazor ♥ SignalRThis issue is related to the experience of Signal R and Blazor working togetherThis issue is related to the experience of Signal R and Blazor working togetherPriority:3Work that is nice to haveWork that is nice to havearea-signalrIncludes: SignalR clients and serversIncludes: SignalR clients and serversenhancementThis issue represents an ask for new feature or an enhancement to an existing oneThis issue represents an ask for new feature or an enhancement to an existing onefeature-blazor-jsinteropThis issue is related to JSInterop in BlazorThis issue is related to JSInterop in Blazor
Type
Fields
Give feedbackNo fields configured for Feature.
As a part of #30289 / #33491 we didn't leverage SignalR's native streaming capability as we wanted to delay sending additional data chunks until the ones sent had been consumed by the server. Without this, the client could queue the entire stream at once (via
subject.next(nextData)) thereby blocking interactivity till the stream was transferred. This would in turn present a breaking change for certain functionality like file uploads. Instead we took asend/invokebased approach where wesendXchunks, and theninvokeeveryX+1chunks to get a "heartbeat" for the stream, and allow other requests to interrupt the transfer.