Commit Graph

9 Commits

Author SHA1 Message Date
Javier Calvarro Nelson 470bfddf92
[Blazor][Fixes #8003] Improves reconnects when the client doesn't perform graceful disconnects (#12327)
* Allows the server to accept acks with a higher sequence number than the first queued pending render and caches up to it.
* Makes the client send acks for previous render batches.
* Makes the client repeat acks for errored render batches if it keeps receiving new render batches.
* Client awaits sending acks to ensure that they get send in order.
2019-07-20 02:16:32 +02:00
Ryan Nowak 8ce68d04c1 Rename Configure -> Attach
Part of: #11610
2019-07-17 20:36:23 -07:00
Ryan Nowak a27b9fc335
Blazor API Review: Design concept for Dispatcher (#11930)
* Design concept for Dispatcher

Part of: #11610

This change brings forward the Dispatcher as a more primary and more
expandable concept.
- Dispatcher shows up in more places
- Dispatcher is an abstract class for horizontal scalability
- Dispatcher has parallels with S.Windows.Threading.Dispatcher where
possible

Looking for feedback on this approach. I feel pretty strongly that
making this an abstract class is the right choice, I want to see
opinions on how much to push it into people's faces.

* WIP

* PR feedback
2019-07-11 17:31:57 -07:00
Steve Sanderson 6534bcff32
Expand Blazor logging (#11919) 2019-07-08 13:50:19 +01:00
Ryan Nowak db0d065b76 Rename Invoke -> InvokeAsync 2019-07-03 10:04:55 -07:00
Ryan Nowak 291ad25f5d Rename .Components.Browser -> Components.Web
This is part of API review for Blazor. We're renaming these projects to
reflect the fact that they are for Blazor using web technologies (html
+css).

The old naming of .Browser of whether it meant client-side (in the
browser).
2019-07-01 15:36:35 -07:00
Ryan Nowak 2948c81aea
Fix RendererSyncContext.Post() (#10451)
* Fix RendererSyncContext.Post()

Fixes: #9683 - SignalR connection breaks on large DOM

The root cause here is a misbehaving sync context. It's not legal for a
Post() implementation to run a callback synchronously. We want that
behavior for most of the functionality Blazor calls directly, but Post()
should always go async or else various threading primitives are broken.

* Fix incorrect tests

These tests have the assumption that setting the result of a TCS will
execution continuations synchronously. This was a bug in our
SyncContext, and these tests needed updating to be more resiliant.

* Remove a delegate allocation
2019-05-23 10:39:53 -07:00
Javier Calvarro Nelson 8499a27c7f
[Components] Relayer + Robust reconnect (#8911)
* [MVC][Components] Prerendering + Robust reconnect
* Relayers prerendering support on a separate package on top of MVC and
  components.
* Implements robust reconects with acknowledgements from the client.
* Improves interactive prerendering with the ability to reconnect to
  prerendered components.
* Removes the need to register components statically when prerendering
  them.
* Removes the need of using an element selector when prerendering an
  interactive component.
* Updates the templates to use the new fallback routing pattern and
  reenables the components test.
* Adds eslint to the Typescript project to help maintain a consistent
  style.
* Adds logging to support better debugging based on the pattern used by
  signalr.
* Fixes exception handling on the server to always report exceptions correctly to the client.
2019-04-02 19:17:03 +02:00
Pranav K 33839dc66a
Client reconnects when state's available on the server (#7395)
Reconnect if we have state on the server

Fixes #7537
2019-03-04 17:27:51 -08:00