Beispiel #1
0
        public static void testWSServer()
        {
            RRServer server = new RRServer("ws://0.0.0.0:20001");

            server.onMessage += (string arg1, IRRClient arg2) => {
                Console.WriteLine("server {0}", arg1);
                arg2.SendMessageAsync(arg1);
            };
            server.onOpen += (IRRClient obj) =>
            {
                Console.WriteLine("connected ip: {0}, port {1}", obj.address, obj.port);
                obj.onClose += (RawSocket) => { Console.WriteLine("server side close"); };
            };
        }
Beispiel #2
0
        public static void Main(string[] args)
        {
            config      = JSONParser.ReadConfig(CONFIG_PATH); //чтение файла конфигурации с диска
            hardwareID  = Hardware.GetID();                   //идентификатор оборудования строися на основе mac адресов
            information = new PartStruct()                    //информация о клиенте отсылается серверу
                          .Add("name", config["name"])
                          .Add("groupe", config["group"])
                          .Add("id", hardwareID)
                          .Add("port", config["serverPort"]);

            receiver = ConfigureReceiver();
            commands = ConfigureCommands();
            rRServer = ConfigureServer();

            Console.ReadKey();
            //освобождение ресурсов и завершение программы
            receiver.Dispose();
            rRServer.Dispose();
        }
Beispiel #3
0
        /*
         * создание сервера принимающего команды с управляющего сервера
         */
        static RRServer ConfigureServer()
        {
            //requ	{cmd, data: {}}
            //resp	{ok: {message}}
            //error	{error: {message}}

            RRServer server = new RRServer(String.Format("ws://0.0.0.0:{0}", config["serverPort"].GetValue <UInt16>()));

            server.onMessage += (string arg1, IRRClient arg2) => {
                JSONParser inputData = null;
                try {
                    inputData = new JSONParser(arg1);
                }
                catch (Exception err) {
                    arg2.SendMessageAsync("{\"error\": {\"message\": \"bad JSON data\"}}");
                    return;
                }
                Console.WriteLine(inputData.ToJSON());

                commands.Execute(inputData["cmd"].GetValue <string>(), new ClientData(arg2, new JSONParser(inputData["data"])));
            };

            return(server);
        }
Beispiel #4
0
        /*
         * создание websocket сервера
         * решающего какая команда будет выполнена
         */
        private static void ConfigureRRServer()
        {
            //requ	{cmd, data: {}}
            //resp	{ok: {message}}
            //error	{error: {message}}
            server = new RRServer(String.Format("ws://0.0.0.0:{0}", config["server_port"].GetValue <UInt16>()));
            server.onServerError += (Exception err) => {
                Console.WriteLine("Server error: {0}", err);
            };
            server.onMessage += (string arg1, IRRClient arg2) =>
            {
                Console.WriteLine("server: input data {0}", arg1);
                JSONParser inputData = null;
                try {
                    inputData = new JSONParser(arg1);
                }
                catch (Exception err) {
                    arg2.SendMessageAsync("{\"error\": {\"message\": \"bad JSON data\"}}");
                    return;
                }


                try {
                    commands.Execute(inputData["cmd"].GetValue <string>(), new ClientData(arg2, new JSONParser(inputData["data"])));
                }
                catch (Exception err) {
                    arg2.SendMessageAsync(new PartStruct()
                                          .Add("error", new PartStruct()
                                               .Add("message", err.Message)
                                               ).ToJSON());
                }
            };
            server.onOpen += (IRRClient obj) => {
                Console.WriteLine("connected ip: {0}, port {1}", obj.address, obj.port);
            };
        }