/* * создание сервера слушающего 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(); })); }
public static async void openWS(RRClient client, string data) { string res = await client.SendMessageAsync(data); Console.WriteLine("client {0}", res); add(); //client.Close(); }
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)); } }
//{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)); } }