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 Sender(string config) { CLIConfig cfg = LoadConfig(config + ".local"); ConfigManager cm = new ConfigManager(config); Console.WriteLine("Enter message:"); string msg = Console.ReadLine(); foreach (Peer p in cm.Config.Peers) { Console.WriteLine("Sender channel: " + p.ChannelID.ToString()); SenderClient client = new SenderClient(cm, p.ChannelID, cfg.ServerURL); client.CheckIfAvailable(); Console.WriteLine("Available: " + client.IsAvailable.ToString()); client.SendMessage(msg); } }