Пример #1
0
        private void DoWork(object context)
        {
            var controller = (ServerController)context;

            using (var results = new MessageRouterResults(controller.Log, controller.Model.Settings.TargetQueueConfig))
            {
                controller.Log.Info("Connecting to {0}", controller.Model.Settings.CameraConnection.Title);

                var mjpegConnection = new MJPEGStream
                {
                    Source   = controller.Model.Settings.CameraConnection.Uri,
                    Login    = controller.Model.Settings.CameraConnection.User,
                    Password = controller.Model.Settings.CameraConnection.Password,
                };

                mjpegConnection.NewFrame += (x, y) => OnNewFrame(controller, results, y);
                mjpegConnection.Start();
                try
                {
                    while (true)
                    {
                        Thread.Sleep(100);
                    }
                }
                catch (ThreadAbortException e)
                {
                    mjpegConnection.Stop();
                }
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            var serverSettings = ServerSettingsHelper.Load(Path.Combine(SettingsFileLocator.LocateConfigurationFolder(), ConfigurationFile));
            var consoleLog     = new ConsoleLog();

            consoleLog.Open();

            if (args.Length == 0)
            {
                Console.WriteLine("Router was started.\nHere you can see messages it forwards to listeners");

                StartProcessorsAndSubscribers(serverSettings);

                new DemoRouterServer(consoleLog, serverSettings)
                .Start();

                Console.ReadLine();
            }
            else if (args[0] == WorkerArgument)
            {
                Console.WriteLine("Worker process.\nType message and press <Enter> to send it to subscribers.");
                using (var results = new MessageRouterResults(consoleLog, serverSettings.Server))
                {
                    while (true)
                    {
                        var text = Console.ReadLine();
                        if (string.IsNullOrEmpty(text))
                        {
                            break;
                        }
                        results.SendText(text);
                    }
                }
            }
            else
            {
                Console.WriteLine("{0} is started.\nHere you can see messages sent by message router.", args[0]);
                var config = serverSettings.Listeners.FirstOrDefault(item => item.Name == args[0]);

                new DemoMessageRouterSubscriber(consoleLog, config)
                .Start();
            }
        }