public static WebSocketHostBuilder ConfigureWebSocketMessageHandler(this WebSocketHostBuilder builder, Func <WebSocketSession, WebSocketPackage, Task> handler) { return(builder.ConfigureServices((ctx, services) => { services.AddSingleton <Func <WebSocketSession, WebSocketPackage, Task> >(handler); }) as WebSocketHostBuilder); }
public static WebSocketHostBuilder UseCommand <TPackageInfo, TPackageMapper>(this WebSocketHostBuilder builder, Action <CommandOptions> configurator) where TPackageInfo : class where TPackageMapper : class, IPackageMapper <WebSocketPackage, TPackageInfo>, new() { return(builder.UseCommand <TPackageInfo, TPackageMapper>() .ConfigureServices((ctx, services) => { services.Configure(configurator); }) as WebSocketHostBuilder); }
public static WebSocketHostBuilder UseCommand <TPackageInfo, TPackageMapper>(this WebSocketHostBuilder builder) where TPackageInfo : class where TPackageMapper : class, IPackageMapper <WebSocketPackage, TPackageInfo>, new() { var keyType = CommandMiddlewareExtensions.GetKeyType <TPackageInfo>(); var commandMiddlewareType = typeof(WebSocketCommandMiddleware <, ,>).MakeGenericType(keyType, typeof(TPackageInfo), typeof(TPackageMapper)); return(builder.ConfigureServices((ctx, services) => { services.AddSingleton(typeof(IWebSocketCommandMiddleware), commandMiddlewareType); }).ConfigureServices((ctx, services) => { services.Configure <CommandOptions>(ctx.Configuration?.GetSection("serverOptions")?.GetSection("commands")); }) as WebSocketHostBuilder); }
public static WebSocketHostBuilder ConfigureWebSocketMessageHandler(this WebSocketHostBuilder builder, Func <WebSocketSession, WebSocketPackage, Task> handler) { return(builder.UseWebSocketMessageHandler(handler)); }
public static WebSocketHostBuilder AsWebSocketHostBuilder(this IHostBuilder hostBuilder) { return(WebSocketHostBuilder.Create(hostBuilder)); }