/// <summary> /// 使用Session容器 /// </summary> /// <param name="builder">Host Builder</param> /// <returns></returns> public static ISuperSocketHostBuilder UseInProcSessionContainer(this ISuperSocketHostBuilder builder) { return(builder .UseMiddleware <InProcSessionContainerMiddleware>(s => s.GetRequiredService <InProcSessionContainerMiddleware>()) .ConfigureServices((ctx, services) => { services.AddSingleton <InProcSessionContainerMiddleware>(); services.AddSingleton <ISessionContainer>((s) => s.GetRequiredService <InProcSessionContainerMiddleware>()); services.AddSingleton <IAsyncSessionContainer>((s) => s.GetRequiredService <ISessionContainer>().ToAsyncSessionContainer()); }) as ISuperSocketHostBuilder); }
public static ISuperSocketHostBuilder <TReceivePackage> UseClearIdleSession <TReceivePackage>(this ISuperSocketHostBuilder <TReceivePackage> hostBuilder) { return(hostBuilder.UseMiddleware <ClearIdleSessionMiddleware>()); }
public static ISuperSocketHostBuilder UseClearIdleSession(this ISuperSocketHostBuilder hostBuilder) { return(hostBuilder.UseMiddleware <ClearIdleSessionMiddleware>()); }
public static ISuperSocketHostBuilder <TPackageInfo> UseCommand <TKey, TPackageInfo>(this ISuperSocketHostBuilder builder) where TPackageInfo : class, IKeyedPackageInfo <TKey> { return(builder.UseMiddleware <CommandMiddleware <TKey, TPackageInfo> >() .ConfigureCommand() as ISuperSocketHostBuilder <TPackageInfo>); }