コード例 #1
0
        public void Configuration(IAppBuilder app)
        {
            //// Turn cross domain on
            var config = new ConnectionConfiguration {EnableJSONP = true};

            //// This will map out to http://localhost:8080/signalr by default
            ////app.MapConnection<MyServerConnection>("/messaging", config);

            //app.Map("/messaging", map =>
            //{
            //    //.UseCors(CorsOptions.AllowAll);
            //    var hubConfiguration = new HubConfiguration
            //    {
            //        // You can enable JSONP by uncommenting line below.
            //        // JSONP requests are insecure but some older browsers (and some
            //        // versions of IE) require JSONP to work cross domain
            //        // EnableJSONP = true
            //    };
            //    // Run the SignalR pipeline. We're not using MapSignalR
            //    // since this branch already runs under the "/signalr"
            //    // path.
            //    map.RunSignalR(hubConfiguration);
            //});
            app.MapSignalR<MyServerConnection>("/messaging", config);
        }
コード例 #2
0
ファイル: CacheServer.cs プロジェクト: BredStik/CacheR
        public void Start()
        {
            if (_server == null)
            {
                _server = WebApp.Start(_url, app =>
                {
                    var config = new ConnectionConfiguration
                    {
                        Resolver = new DefaultDependencyResolver()
                    };

                    config.Resolver.Register(typeof(CacheConnection), () => new CacheConnection(this));

                    _context = config.Resolver.Resolve<IConnectionManager>().GetConnectionContext<CacheConnection>();

                    app.MapSignalR<CacheConnection>("/cache", config);
                });
            }
        }
コード例 #3
0
ファイル: Assets.cs プロジェクト: ajorkowski/NodeAssets
        public IAppBuilder MapNodeAssets(IAppBuilder appBuilder, ConnectionConfiguration configuration = null)
        {
            // NOTE: All the routes are based off 'Map' so we dont have to use middleware etc
            if (_config.IsLiveCss)
            {
                var config = configuration ?? new ConnectionConfiguration();
                appBuilder.Map("/" + _config.Namespace, map =>
                {
                    map.RunSignalR<LiveCssConnection>(config);
                });
            }

            // Add js routes
            if (_jsManager != null && _jsPile != null)
            {
                var pileManager = _jsManager.FindDestinationPile();
                HandleRoutes(pileManager, appBuilder);
            }

            // Add css routes
            if (_cssManager != null && _cssPile != null)
            {
                var pileManager = _cssManager.FindDestinationPile();
                HandleRoutes(pileManager, appBuilder);
            }

            return appBuilder;
        }
コード例 #4
0
ファイル: StressRuns.cs プロジェクト: sirius17/SignalR
        public static IDisposable Connect_Broadcast5msg_AndDisconnect(int concurrency)
        {
            var host = new MemoryHost();
            var threads = new List<Thread>();
            var cancellationTokenSource = new CancellationTokenSource();

            host.Configure(app =>
            {
                var config = new ConnectionConfiguration
                {
                    Resolver = new DefaultDependencyResolver()
                };
                app.MapConnection<RawConnection>("/Raw-connection", config);
            });

            for (int i = 0; i < concurrency; i++)
            {
                var thread = new Thread(_ =>
                {
                    while (!cancellationTokenSource.IsCancellationRequested)
                    {
                        BroadcastFive(host);
                    }
                });

                threads.Add(thread);
                thread.Start();
            }

            return new DisposableAction(() =>
            {
                cancellationTokenSource.Cancel();

                threads.ForEach(t => t.Join());

                host.Dispose();
            });
        }
コード例 #5
0
ファイル: StressRuns.cs プロジェクト: sirius17/SignalR
        public static IDisposable ClientGroupsSyncWithServerGroupsOnReconnectLongPolling()
        {
            var host = new MemoryHost();

            host.Configure(app =>
            {
                var config = new ConnectionConfiguration()
                {
                    Resolver = new DefaultDependencyResolver()
                };

                app.MapConnection<MyRejoinGroupConnection>("/groups", config);

                var configuration = config.Resolver.Resolve<IConfigurationManager>();
                configuration.KeepAlive = null;
                configuration.ConnectionTimeout = TimeSpan.FromSeconds(1);
            });

            var connection = new Client.Connection("http://foo/groups");
            var inGroupOnReconnect = new List<bool>();
            var wh = new ManualResetEventSlim();

            connection.Received += message =>
            {
                Console.WriteLine(message);
                wh.Set();
            };

            connection.Reconnected += () =>
            {
                connection.Send(new { type = 3, group = "test", message = "Reconnected" }).Wait();
            };

            connection.Start(new Client.Transports.LongPollingTransport(host)).Wait();

            // Join the group
            connection.Send(new { type = 1, group = "test" }).Wait();

            Thread.Sleep(TimeSpan.FromSeconds(10));

            if (!wh.Wait(TimeSpan.FromSeconds(10)))
            {
                Debugger.Break();
            }

            Console.WriteLine(inGroupOnReconnect.Count > 0);
            Console.WriteLine(String.Join(", ", inGroupOnReconnect.Select(b => b.ToString())));

            connection.Stop();

            return host;
        }
コード例 #6
0
 public static IAppBuilder MapNodeAssets(this IAppBuilder builder, IAssets assets, ConnectionConfiguration liveCssConfig = null)
 {
     return assets.MapNodeAssets(builder, liveCssConfig);
 }