public static ISiloHostBuilder UseSignalR(this ISiloHostBuilder builder, Action <SignalrServerConfig> config) { var cfg = new SignalrServerConfig(); config?.Invoke(cfg); return(builder.UseSignalR(cfg)); }
public static ISiloHostBuilder UseSignalR(this ISiloHostBuilder builder, SignalrServerConfig config = null) { if (config == null) { config = new SignalrServerConfig(); } config.ConfigureBuilder?.Invoke(builder, new HostBuilderConfig()); try { builder.AddMemoryGrainStorage(Constants.PUBSUB_PROVIDER); } catch { /** PubSubStore was already added. Do nothing. **/ } try { builder.AddMemoryGrainStorage(Constants.STORAGE_PROVIDER); } catch { /** Grain storage provider was already added. Do nothing. **/ } return(builder .AddSimpleMessageStreamProvider(Constants.STREAM_PROVIDER, opt => opt.FireAndForgetDelivery = config.UseFireAndForgetDelivery) .ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(ClientGrain).Assembly).WithReferences())); }