Ejemplo n.º 1
0
 public CacheServer(ICacheStore store, string url)
 {
     Store = store;
     _server = new SelfHostServer(url);
     _server.DependencyResolver.Register(typeof(CacheConnection), () => new CacheConnection(this));
     _server.MapConnection<CacheConnection>("/cache");
 }
Ejemplo n.º 2
0
        public EventBroker(String publishingUri)
            : this()
        {
            var server = new SignalR.Hosting.Self.Server(publishingUri);

            server.MapConnection <EchoConnection>("/echo");
            server.Start();

            var connectionManager = server.DependencyResolver.Resolve <IConnectionManager>();

            _serverConnection = connectionManager.GetConnection <EchoConnection>();
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            Debug.Listeners.Add(new ConsoleTraceListener());
            Debug.AutoFlush = true;

            const string url = "http://*:5000/";
            var server = new SignalR.Hosting.Self.Server(url);
            server.Configuration.DisconnectTimeout = TimeSpan.Zero;

            // Map connections
            server.MapConnection<MyConnection>("/echo")
                  .MapHubs();

            server.Start();

            Console.WriteLine("Server running on {0}", url);
            Console.ReadKey();
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            string url    = "http://localhost:8081/";
            var    server = new SignalR.Hosting.Self.Server(url);

            // Map the default hub url (/signalr)
            server.MapHubs();
            // Start the server
            server.Start();
            Console.WriteLine("Server running on {0}", url);
            // Keep going until somebody hits 'x'
            while (true)
            {
                ConsoleKeyInfo ki = Console.ReadKey(true);
                if (ki.Key == ConsoleKey.X)
                {
                    break;
                }
            }
        }
        public void Run(string[] args)
        {
            InitializeLogging();

            var log = LogManager.GetLogger("Main");

            AppDomain.CurrentDomain.UnhandledException += (sender, eventArgs) =>
            {
                var exception = (Exception) eventArgs.ExceptionObject;
                log.Fatal(exception);
            };

            string username = string.Empty;
            string password = string.Empty;
            string cacheFolder = Constants.CacheFolder;
            string settingsFolder = Constants.SettingsFolder;
            string userAgent = Constants.UserAgent;
            bool hidden = false;
            int port = 8081;
            int loginTimeout = 50000;

            new OptionSet
            {
                { "u|username="******"p|password="******"cf|cachefolder=", v => cacheFolder = v },
                { "sf|settingsfolder=", v => settingsFolder = v },
                { "ua|useragent=", v => userAgent = v },
                { "hidden", v => hidden = v != null },
                { "port=", v =>
                {
                    if(v != null)
                        int.TryParse(v, out port);
                }},
                { "logintimeout=", v =>
                {
                    if(v != null)
                        int.TryParse(v, out loginTimeout);
                }}
            }.Parse(args);

            if (hidden)
            {
                var hwnd = GetConsoleWindow();
                ShowWindow(hwnd, SW_HIDE);
            }

            var session =
               SessionFactory
                   .CreateSession(
                       Constants.ApplicationKey,
                       cacheFolder,
                       settingsFolder,
                       userAgent)
                   .SetPreferredBitrate(Bitrate.Bitrate320k);

            var wait = new ManualResetEvent(false);
            session.LoginComplete += (sender, eventArgs) =>
            {
                log.Info(eventArgs.Status == Error.OK ? "Logged in" : eventArgs.Message);
                wait.Set();
            };

            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
            {
                log.Info("Please specify both username and password. -u=userName -p=password");
                Console.ReadLine();
                Environment.Exit(-1);
            }

            session.Login(username, password);

            if (!wait.WaitOne(loginTimeout))
            {
                log.Error("Timed out [After " + loginTimeout + " ms]");
                Environment.Exit(-1);
            }

            var player = new TorshifySongPlayer(session, new SessionLinkFactory(session));

            GlobalHost.DependencyResolver.Register(typeof(ISongPlayer), () => player);

            var signalRUrl = "http://localhost:" + port + "/";
            var nancyFxUrl = "http://localhost:" + (port + 1) + "/torshify/";
            try
            {
                log.Info("SignalR URL: " + signalRUrl);
                log.Info("NancyFX URL: " + nancyFxUrl);

                var server = new SignalR.Hosting.Self.Server(signalRUrl);
                server.MapHubs();
                server.Start();

                var hub = GlobalHost.ConnectionManager.GetHubContext<TorshifyHub>();

                player.IsPlayingChanged += (sender, eventArgs) => hub.Clients.IsPlayingChanged(eventArgs);
                player.IsMutedChanged += (sender, eventArgs) => hub.Clients.IsMutedChanged(eventArgs);
                player.Buffering += (sender, eventArgs) => hub.Clients.Buffering(eventArgs);
                player.Progress += (sender, eventArgs) => hub.Clients.Progress(eventArgs);
                player.CurrentSongChanged += (sender, eventArgs) => hub.Clients.CurrentSongChanged(eventArgs);
                player.CurrentSongCompleted += (sender, eventArgs) => hub.Clients.CurrentSongCompleted(eventArgs);
                player.VolumeChanged += (sender, eventArgs) => hub.Clients.VolumeChanged(eventArgs);

                var bootstrapper = new NancyBootstrapper(session);

                var nancyHost = new NancyHost(new Uri(nancyFxUrl), bootstrapper);
                nancyHost.Start();
            }
            catch (Exception e)
            {
                log.Fatal(e);
            }

            Console.ReadLine();
            log.Info("Exiting");
        }