/* * создание сервера слушающего 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 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(); } }
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)); } }
public CommonData(String url) { server = new RRClient(url); }