Exemple #1
0
        public RequestResponseClientBase(string ipAddress, int portNumber)
        {
            _ipAddress  = ipAddress;
            _portNumber = portNumber;

            _client = new RequestResponseClient <THeader, TPayload>(_ipAddress, _portNumber);
        }
Exemple #2
0
        private static void SendMessages(RequestResponseClient client)
        {
            while (true)
            {
                try
                {
                    Console.WriteLine("Please give a message to be sent or 'q' to quit:");
                    Console.Write("> ");
                    var input = Console.ReadLine();

                    if (input.Trim().ToLower() == "q")
                    {
                        return;
                    }

                    Console.WriteLine("Requesting...");

                    var inputBytes    = System.Text.Encoding.UTF8.GetBytes(input);
                    var responseBytes = client.PerformRequestSync(inputBytes, 5000);
                    var response      = System.Text.Encoding.UTF8.GetString(responseBytes);

                    Console.WriteLine("Response: \"" + response + "\"");
                }
                catch (TimeoutException)
                {
                    Console.WriteLine("The request has timed out.");
                }
            }
        }
Exemple #3
0
        public void TestBasicFeature()
        {
            var requestResponseService = new RequestResponseService <string, byte[]>(5555);

            requestResponseService.ReceiveMessage += ((header, payload) => new MessageFrame <string, byte[]>()
            {
                MessageType = "abc", Payload = new byte[] { 123 }
            });

            CancellationTokenSource cts = new CancellationTokenSource();

            var task = Task.Run(() =>
            {
                requestResponseService.Start(cts.Token);
            });

            var requestResponseClient = new RequestResponseClient <string, byte[]>("127.0.0.1", 5555);

            MessageFrame <string, byte[]> reply = requestResponseClient.SendRequest(new MessageFrame <string, byte[]>()
            {
                MessageType = "hellomessage", Payload = Encoding.ASCII.GetBytes("Hello World")
            });

            requestResponseService.Stop();

            if (!task.IsCompleted)
            {
                cts.Cancel();
            }

            Assert.AreEqual("abc", reply.MessageType);
            Assert.AreEqual(reply.Payload.Length, 1);
            Assert.AreEqual(reply.Payload[0], 123);
        }
Exemple #4
0
 /// <summary>
 /// Runs the class.
 /// </summary>
 /// <param name="channel">Channel.</param>
 /// <param name="excName">Exchange name.</param>
 /// <param name="topicName">Topic name to send messages to.</param>
 public void Run(IModel channel, string excName, string topicName)
 {
     using (var client = new RequestResponseClient(channel, excName, topicName))
     {
         SendMessages(client);
     }
 }