public RequestResponseClientBase(string ipAddress, int portNumber) { _ipAddress = ipAddress; _portNumber = portNumber; _client = new RequestResponseClient <THeader, TPayload>(_ipAddress, _portNumber); }
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."); } } }
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); }
/// <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); } }