示例#1
0
        /// <summary>
        /// Registers the Hub Lifetime Manager based on the configuration options provided
        /// </summary>
        /// <param name="signalRServerBuilder">The SignalR builder abstraction for configuring SignalR servers.</param>
        /// <param name="configureOptions">The MassTransit SignalR configuration options</param>
        public static ISignalRServerBuilder AddMassTransitBackplane(this ISignalRServerBuilder signalRServerBuilder,
                                                                    Action <MassTransitSignalROptions> configureOptions = null)
        {
            var options = new MassTransitSignalROptions();

            configureOptions?.Invoke(options);

            signalRServerBuilder.Services.AddSingleton(options);

            return(signalRServerBuilder);
        }
        /// <summary>
        /// Registers the Hub Lifetime Manager based on the configuration options provided
        /// </summary>
        /// <param name="signalRServerBuilder">The SignalR builder abstraction for configuring SignalR servers.</param>
        /// <param name="configureOptions">The MassTransit SignalR configuration options</param>
        public static void AddMassTransitBackplane(this ISignalRServerBuilder signalRServerBuilder,
                                                   Action <MassTransitSignalROptions> configureOptions = null)
        {
            var options = new MassTransitSignalROptions();

            configureOptions?.Invoke(options);

            signalRServerBuilder.Services.AddSingleton(options);

            if (options.UseMessageData)
            {
                signalRServerBuilder.Services.AddSingleton(typeof(HubLifetimeManager <>), typeof(MassTransitMessageDataHubLifetimeManager <>));
            }
            else
            {
                signalRServerBuilder.Services.AddSingleton(typeof(HubLifetimeManager <>), typeof(MassTransitHubLifetimeManager <>));
            }
        }