Ejemplo n.º 1
0
        private static void Main(string[] args)
        {
            Logger.LoggerHandlerManager
            .AddHandler(new ConsoleLoggerHandler())
            .AddHandler(new FileLoggerHandler());
            Logger.DebugOn();

            var httpServer = new UserHttpServer();

            Router.Register(httpServer);

            _ = new DeviceRegisterTcpServer();

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        public static void Register(UserHttpServer server)
        {
            server.RegisterRouter("devices", (context, body) => {
                var jDevices = new JArray();
                lock ( Devices ) {
                    for (var i = 0; i < Devices.Count;)
                    {
                        if (!Devices[i].Connected)
                        {
                            Devices.RemoveAt(i);
                        }
                        else
                        {
                            i++;
                        }
                    }

                    foreach (var device in Devices)
                    {
                        jDevices.Add(new JObject {
                            ["uid"]  = device.Guid,
                            ["name"] = device.Name
                        });
                    }
                }

                return(jDevices.ToString(Formatting.None));
            });

            server.RegisterRouter("lua", (context, body) => {
                if (string.IsNullOrEmpty(body))
                {
                    return(string.Empty);
                }
                var device = context.Request.QueryString["device"];
                // ReSharper disable once InconsistentlySynchronizedField
                var client = Devices.Find(c => c.Guid == device);
                var task   = client.RequestDevice(body);
                task.Wait(5000);
                return(task.Result);
            });
        }