public void ChannelLifecycleHttpClient() { new FileInfo(".test.2.conf").Delete(); HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("http://localhost:5000/"); ConfigManager config = new ConfigManager(".test.2.conf"); SenderClient sender = new SenderClient(config, config.Config.Peers[0].ChannelID, httpClient.BaseAddress.ToString(), httpClient); ReceiverClient receiver = new ReceiverClient(config, config.Config.Peers[0].ChannelID, httpClient.BaseAddress.ToString(), httpClient); sender.CheckIfAvailable(); Assert.False(sender.IsAvailable); receiver.Connect(); sender.CheckIfAvailable(); Assert.True(sender.IsAvailable); receiver.Disconnect(); sender.CheckIfAvailable(); Assert.False(sender.IsAvailable); new FileInfo(".test.2.conf").Delete(); }
static void ReceiverInitWorkaround(string config) { string msg = Guid.NewGuid().ToString(); Console.WriteLine("Bug workaround - waiting for own answer."); CLIConfig cfg = LoadConfig(config + ".local"); ConfigManager cm = new ConfigManager(config); List <ReceiverClient> list = new List <ReceiverClient>(); Peer p = cm.Config.Peers.Single(x => x.PeerID == cm.Config.MyID); Console.WriteLine("Init receiver channel: " + p.ChannelID.ToString()); ReceiverClient client = new ReceiverClient(cm, p.ChannelID, cfg.ServerURL); client.MessageReceived = HandleReceivedInit; client.Connect(); SenderClient sclient = new SenderClient(cm, p.ChannelID, cfg.ServerURL); while (initReply.ToLower().Trim() != msg.ToLower().Trim()) { sclient.SendMessage(msg); Thread.Sleep(100); } Console.WriteLine("Got it... Good."); foreach (ReceiverClient r in list) { r.Disconnect(); } }
public void SendAndReceive() { new FileInfo(".test.3r.conf").Delete(); new FileInfo(".test.3s.conf").Delete(); ConfigManager rconfig = new ConfigManager(".test.3r.conf"); ConfigManager sconfig = new ConfigManager(".test.3s.conf"); rconfig.PeerWith(sconfig); Guid ch = sconfig.Config.Peers.Single(x => x.PeerID == rconfig.Config.MyID).ChannelID; SenderClient sender = new SenderClient(sconfig, ch, "http://localhost:5000/"); ReceiverClient receiver = new ReceiverClient(rconfig, ch, "http://localhost:5000/"); sender.CheckIfAvailable(); Assert.False(sender.IsAvailable); lastMsg = ""; receiver.MessageReceived = receiverHanlder; receiver.Connect(); sender.CheckIfAvailable(); Assert.True(sender.IsAvailable); Assert.Equal("", lastMsg); sender.SendMessage("TEST MESSAGE"); Thread.Sleep(10 * 1000); Assert.Equal("TEST MESSAGE", lastMsg); receiver.Disconnect(); sender.CheckIfAvailable(); Assert.False(sender.IsAvailable); new FileInfo(".test.3r.conf").Delete(); new FileInfo(".test.3s.conf").Delete(); }
static void Receiver(string config) { CLIConfig cfg = LoadConfig(config + ".local"); ConfigManager cm = new ConfigManager(config); List <ReceiverClient> list = new List <ReceiverClient>(); foreach (Peer p in cm.Config.Peers) { Console.WriteLine("Receiver Channel: " + p.ChannelID.ToString()); ReceiverClient client = new ReceiverClient(cm, p.ChannelID, cfg.ServerURL); client.MessageReceived = HandleReceivedMessage; client.Connect(); } Console.WriteLine("Press enter to close"); Console.ReadLine(); //client.Disconnect(); foreach (ReceiverClient r in list) { r.Disconnect(); } }