コード例 #1
0
        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();
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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();
            }
        }