コード例 #1
0
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
            var heartBeat = GlobalHost.DependencyResolver.Resolve <ITransportHeartbeat>();
            var monitor   = new PresenceMonitor(heartBeat);

            monitor.StartMonitoring();
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
        }
コード例 #2
0
        private static void SetupSignalR(IJabbrConfiguration jabbrConfig, IKernel kernel, IAppBuilder app)
        {
            var resolver          = new NinjectSignalRDependencyResolver(kernel);
            var connectionManager = resolver.Resolve <IConnectionManager>();
            var heartbeat         = resolver.Resolve <ITransportHeartbeat>();
            var hubPipeline       = resolver.Resolve <IHubPipeline>();
            var configuration     = resolver.Resolve <IConfigurationManager>();

            // Enable service bus scale out
            if (!String.IsNullOrEmpty(jabbrConfig.ServiceBusConnectionString) &&
                !String.IsNullOrEmpty(jabbrConfig.ServiceBusTopicPrefix))
            {
                var sbConfig = new ServiceBusScaleoutConfiguration(jabbrConfig.ServiceBusConnectionString,
                                                                   jabbrConfig.ServiceBusTopicPrefix)
                {
                    TopicCount = 5
                };

                resolver.UseServiceBus(sbConfig);
            }

            if (jabbrConfig.ScaleOutSqlServer)
            {
                resolver.UseSqlServer(ConfigurationManager.ConnectionStrings["Jabbr"].ConnectionString);
            }

            kernel.Bind <IConnectionManager>()
            .ToConstant(connectionManager);

            // We need to extend this since the inital connect might take a while
            configuration.TransportConnectTimeout = TimeSpan.FromSeconds(30);

            var config = new HubConfiguration
            {
                Resolver = resolver
            };

            hubPipeline.AddModule(kernel.Get <LoggingHubPipelineModule>());

            app.MapSignalR(config);

            var monitor = new PresenceMonitor(kernel, connectionManager, heartbeat);

            monitor.Start();
        }
コード例 #3
0
        public static void ConfigureSignalR(IAppBuilder app)
        {
            var kernel   = new StandardKernel();
            var resolver = new NinjectSignalRDependencyResolver(kernel);

            kernel.Bind <IStockTicker>().To <StockTicker>().InSingletonScope();
            kernel.Bind <IHubConnectionContext>()
            .ToMethod(context => resolver.Resolve <IConnectionManager>().GetHubContext <StockTickerHub>().Clients)
            .WhenInjectedInto <IStockTicker>();

            var config = new HubConfiguration()
            {
                Resolver = resolver
            };

            var heartBeat = GlobalHost.DependencyResolver.Resolve <ITransportHeartbeat>();
            var monitor   = new PresenceMonitor(heartBeat);

            monitor.StartMonitoring();

            //Using the ninject dependency resolver, the ITransportHeartbeat.GetConnections() in the PresenceMonitor never returns any connections
            app.MapSignalR(config);
        }
コード例 #4
0
ファイル: Startup.cs プロジェクト: yreynhout/JabbR
        private static void SetupSignalR(IKernel kernel, IAppBuilder app)
        {
            var resolver          = new NinjectSignalRDependencyResolver(kernel);
            var connectionManager = resolver.Resolve <IConnectionManager>();
            var heartbeat         = resolver.Resolve <ITransportHeartbeat>();
            var hubPipeline       = resolver.Resolve <IHubPipeline>();

            kernel.Bind <IConnectionManager>()
            .ToConstant(connectionManager);

            var config = new HubConfiguration
            {
                Resolver = resolver
            };

            hubPipeline.AddModule(kernel.Get <LoggingHubPipelineModule>());

            app.MapSignalR(config);

            var monitor = new PresenceMonitor(kernel, connectionManager, heartbeat);

            monitor.Start();
        }