Пример #1
0
        /*
         * создание сервера слушающего broadcast и передающего информацию о себе управляющему серверу
         */
        static FlagReceiver ConfigureReceiver()
        {
            return(new FlagReceiver(BROADCAST_UDP_SENDER_PORT, async(IPEndPoint arg1, byte[] arg2) => {
                UInt32 id = BitConverter.ToUInt32(arg2, 2);
                lock (knownServers) {
                    if (knownServers.ContainsKey(arg1))
                    {
                        if (knownServers[arg1] == id)
                        {
                            return;
                        }
                        else
                        {
                            knownServers[arg1] = id;
                        }
                    }
                    else
                    {
                        knownServers.Add(arg1, id);
                    }
                }

                UInt16 port = BitConverter.ToUInt16(arg2, 0);
                Console.WriteLine("server on {0}:{1} id: {2}", arg1.Address, port, id);
                RRClient client = new RRClient(String.Format("ws://{0}:{1}", arg1.Address, port));
                string data = await client.SendMessageAsync(new PartStruct()
                                                            .Add("cmd", "AddClient")
                                                            .Add("data", information).ToJSON());
                client.Close();
            }));
        }
Пример #2
0
        public static void testWSclients(int connectCount, int messageCount, int delay)
        {
            RRClient[] clients = new RRClient[connectCount];

            for (int i = 0; i < clients.Length; i++)
            {
                clients[i]          = new RRClient("ws://10.0.1.2:20001");
                clients[i].onClose += (RawSocket) => { Console.WriteLine("client close"); };
            }

            for (int i = 0; i < messageCount; i++)
            {
                int index = i % clients.Length;
                openWS(clients[index], String.Format("hello server from connect {0}\t message {1}", index, i));
                Thread.Sleep(delay);
            }

            Console.ReadLine();
            Console.WriteLine(count);

            for (int i = 0; i < clients.Length; i++)
            {
                clients[i].Close();
            }
        }
Пример #3
0
        public static async void openWS(RRClient client, string data)
        {
            string res = await client.SendMessageAsync(data);

            Console.WriteLine("client {0}", res);
            add();
            //client.Close();
        }
Пример #4
0
 private IPart TestForSingleIotClient(Client currentClient, string req)
 {
     try
     {
         RRClient   iotClient = currentClient.getConnect();
         JSONParser reply     = new JSONParser(iotClient.SendMessageAsync(req).Result); //{ok: {generate, sort, search}}
         return(reply["ok"]);
     }
     catch (Exception err) {
         return(new PartStruct().Add("exception", err.Message));
     }
 }
Пример #5
0
        //{dataCount, clients:[]}
        private IPart TestForSingleIotClient(Client currentClient, string req, uint count)
        {
            try {
                RRClient   iotClient = currentClient.getConnect();
                JSONParser reply     = new JSONParser(iotClient.SendMessageAsync(req).Result); //{ok: {session_id}}

                uint sessionId = reply["ok.session_id"].GetValue <UInt32>();

                return(data.statisticData.GetMetric(currentClient.Address.Address, sessionId, count).GetJsonData());
            }
            catch (Exception err) {
                return(new PartStruct().Add("exception", err.Message));
            }
        }
Пример #6
0
 public CommonData(String url)
 {
     server = new RRClient(url);
 }