Cleanup some dead code (#1434)
- Rename SocketBuilder to ConnectionBuilder - Removed ChannelReaderExtensions
This commit is contained in:
parent
9589775f3d
commit
3934ffd5af
|
|
@ -1,47 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Channels;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.SignalR.Internal
|
|
||||||
{
|
|
||||||
public static class ChannelReaderExtensions
|
|
||||||
{
|
|
||||||
/// <summary>Asynchronously reads an item from the channel.</summary>
|
|
||||||
/// <param name="channel">The channel</param>
|
|
||||||
/// <param name="cancellationToken">A <see cref="CancellationToken"/> used to cancel the read operation.</param>
|
|
||||||
/// <returns>A <see cref="ValueTask{TResult}"/> that represents the asynchronous read operation.</returns>
|
|
||||||
public static ValueTask<T> ReadAsync<T>(this ChannelReader<T> channel, CancellationToken cancellationToken = default)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return
|
|
||||||
cancellationToken.IsCancellationRequested
|
|
||||||
? new ValueTask<T>(Task.FromCanceled<T>(cancellationToken))
|
|
||||||
: channel.TryRead(out T item)
|
|
||||||
? new ValueTask<T>(item)
|
|
||||||
: ReadAsyncCore(cancellationToken);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
return new ValueTask<T>(Task.FromException<T>(e));
|
|
||||||
}
|
|
||||||
|
|
||||||
async ValueTask<T> ReadAsyncCore(CancellationToken ct)
|
|
||||||
{
|
|
||||||
while (await channel.WaitToReadAsync(ct).ConfigureAwait(false))
|
|
||||||
{
|
|
||||||
if (channel.TryRead(out T item))
|
|
||||||
{
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new ChannelClosedException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -7,11 +7,11 @@ using Microsoft.AspNetCore.Protocols;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Sockets
|
namespace Microsoft.AspNetCore.Sockets
|
||||||
{
|
{
|
||||||
public static class SocketBuilderExtensions
|
public static class ConnectionBuilderExtensions
|
||||||
{
|
{
|
||||||
public static IConnectionBuilder Use(this IConnectionBuilder socketBuilder, Func<ConnectionContext, Func<Task>, Task> middleware)
|
public static IConnectionBuilder Use(this IConnectionBuilder connectionBuilder, Func<ConnectionContext, Func<Task>, Task> middleware)
|
||||||
{
|
{
|
||||||
return socketBuilder.Use(next =>
|
return connectionBuilder.Use(next =>
|
||||||
{
|
{
|
||||||
return context =>
|
return context =>
|
||||||
{
|
{
|
||||||
|
|
@ -21,9 +21,9 @@ namespace Microsoft.AspNetCore.Sockets
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IConnectionBuilder Run(this IConnectionBuilder socketBuilder, Func<ConnectionContext, Task> middleware)
|
public static IConnectionBuilder Run(this IConnectionBuilder connectionBuilder, Func<ConnectionContext, Task> middleware)
|
||||||
{
|
{
|
||||||
return socketBuilder.Use(next =>
|
return connectionBuilder.Use(next =>
|
||||||
{
|
{
|
||||||
return context =>
|
return context =>
|
||||||
{
|
{
|
||||||
|
|
@ -27,11 +27,11 @@ namespace Microsoft.AspNetCore.Sockets
|
||||||
public void MapSocket(PathString path, Action<IConnectionBuilder> socketConfig) =>
|
public void MapSocket(PathString path, Action<IConnectionBuilder> socketConfig) =>
|
||||||
MapSocket(path, new HttpSocketOptions(), socketConfig);
|
MapSocket(path, new HttpSocketOptions(), socketConfig);
|
||||||
|
|
||||||
public void MapSocket(PathString path, HttpSocketOptions options, Action<IConnectionBuilder> socketConfig)
|
public void MapSocket(PathString path, HttpSocketOptions options, Action<IConnectionBuilder> connectionConfig)
|
||||||
{
|
{
|
||||||
var socketBuilder = new ConnectionBuilder(_routes.ServiceProvider);
|
var connectionBuilder = new ConnectionBuilder(_routes.ServiceProvider);
|
||||||
socketConfig(socketBuilder);
|
connectionConfig(connectionBuilder);
|
||||||
var socket = socketBuilder.Build();
|
var socket = connectionBuilder.Build();
|
||||||
_routes.MapRoute(path, c => _dispatcher.ExecuteAsync(c, options, socket));
|
_routes.MapRoute(path, c => _dispatcher.ExecuteAsync(c, options, socket));
|
||||||
_routes.MapRoute(path + "/negotiate", c => _dispatcher.ExecuteNegotiateAsync(c, options));
|
_routes.MapRoute(path + "/negotiate", c => _dispatcher.ExecuteNegotiateAsync(c, options));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,13 @@ using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Sockets
|
namespace Microsoft.AspNetCore.Sockets
|
||||||
{
|
{
|
||||||
public static class SocketBuilderExtensions
|
public static class ConnectionBuilderExtensions
|
||||||
{
|
{
|
||||||
public static IConnectionBuilder UseEndPoint<TEndPoint>(this IConnectionBuilder socketBuilder) where TEndPoint : EndPoint
|
public static IConnectionBuilder UseEndPoint<TEndPoint>(this IConnectionBuilder connectionBuilder) where TEndPoint : EndPoint
|
||||||
{
|
{
|
||||||
var endpoint = socketBuilder.ApplicationServices.GetRequiredService<TEndPoint>();
|
var endpoint = connectionBuilder.ApplicationServices.GetRequiredService<TEndPoint>();
|
||||||
// This is a terminal middleware, so there's no need to use the 'next' parameter
|
// This is a terminal middleware, so there's no need to use the 'next' parameter
|
||||||
return socketBuilder.Run(connection => endpoint.OnConnectedAsync(connection));
|
return connectionBuilder.Run(connection => endpoint.OnConnectedAsync(connection));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue