Skip to content

Adopt Bedrock Client abstractions in SignalR client #10872

@analogrelay

Description

@analogrelay

Epic #10869

SignalR currently uses the "Bedrock" abstractions on the server side (ConnectionContext, etc.) but has a custom client-side abstraction (IConnectionFactory). Bedrock has evolved to support a client-side abstraction now so SignalR should update to use it (since it would be a breaking change).

The new client abstraction shape is:

public interface IConnectionFactory
{
    ValueTask<ConnectionContext> ConnectAsync(System.Net.EndPoint endpoint, CancellationToken cancellationToken = default);
}

Some elements to this:

  • Add IConnectionFactory (as above) somewhere (Connections.Abstractions? or a new library?)
  • Add HttpEndpont sub-class of System.Net.Endpoint (for use in the IConnectionFactory.ConnectAsync method).
  • Configure the TransferFormat in the constructor instead of in the ConnectAsync method?
  • Delete existing connection factory and change to use the new abstraction.

Metadata

Metadata

Assignees

Labels

DoneThis issue has been fixedarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsarea-signalrIncludes: SignalR clients and servers🥌 Bedrock

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions