dotnet / dotnet/aspnetcore

Consider SignalR Pull Model / Streaming for JavaScript and Java client

Open
#33,859 2 comments 1 reaction 0 assignees View on GitHub
area-signalr Blazor ♥ SignalR enhancement feature-blazor-jsinterop Priority:3
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 6h
Merged PRs (30d)
290

Description

As a part of https://github.com/dotnet/aspnetcore/issues/30289 / https://github.com/dotnet/aspnetcore/pull/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 a `send`/`invoke` based approach where we `send` `X` chunks, and then `invoke` every `X+1` chunks to get a "heartbeat" for the stream, and allow other requests to interrupt the transfer.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.