public void MessageHandler(IModel channel, DefaultBasicConsumer consumer, BasicDeliverEventArgs eventArgs) { string message = Encoding.UTF8.GetString(eventArgs.Body) + "\r\n"; txtConversation.InvokeIfRequired(() => { txtConversation.Text += message; txtConversation.ScrollToEnd(); }); }
public async Task TestGetQueueProperties() { var serviceCollection = CreateContainer(); serviceCollection.AddRabbitConnectionFactory <SingleConnectionFactory>((p, f) => { f.Host = "localhost"; }); var provider = serviceCollection.BuildServiceProvider(); var applicationContext = provider.GetService <IApplicationContext>(); var connectionFactory = applicationContext.GetService <IConnectionFactory>(); var rabbitAdmin = new RabbitAdmin(applicationContext, connectionFactory); var queueName = "test.properties." + DateTimeOffset.Now.ToUnixTimeMilliseconds(); try { rabbitAdmin.DeclareQueue(new Config.Queue(queueName)); var template = new RabbitTemplate(connectionFactory); template.ConvertAndSend(queueName, "foo"); var n = 0; while (n++ < 100 && MessageCount(rabbitAdmin, queueName) == 0) { await Task.Delay(100); } Assert.True(n < 100); var channel = connectionFactory.CreateConnection().CreateChannel(false); var consumer = new DefaultBasicConsumer(channel); channel.BasicConsume(queueName, true, consumer); n = 0; while (n++ < 100 && MessageCount(rabbitAdmin, queueName) > 0) { await Task.Delay(100); } Assert.True(n < 100); var props = rabbitAdmin.GetQueueProperties(queueName); Assert.True(props.TryGetValue(RabbitAdmin.QUEUE_CONSUMER_COUNT, out var consumerCount)); Assert.Equal(1U, consumerCount); channel.Close(); } finally { rabbitAdmin.DeleteQueue(queueName); connectionFactory.Destroy(); } }
public static void MessageHandler(IModel channel, DefaultBasicConsumer consumer, BasicDeliverEventArgs eventArgs) { string message = Encoding.UTF8.GetString(eventArgs.Body); Console.WriteLine("Message received: " + message); foreach (object headerKey in eventArgs.BasicProperties.Headers.Keys) { Console.WriteLine(headerKey + ": " + eventArgs.BasicProperties.Headers[headerKey]); } if (message == "quit") { channel.BasicCancel(consumer.ConsumerTag); } }
static void Main(string[] args) { var files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.db"); foreach (var file in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.db")) { File.Delete(file); } var ip = "127.0.0.1"; var brokerPort = 11100; var expectedMessages = 10000; if (args.Length >= 2) { ip = args.First(); brokerPort = int.Parse(args[1]); expectedMessages = int.Parse(args.Last()); Console.WriteLine("Running with IP: " + ip + " Broker Port: " + brokerPort); } var factory = new ConnectionFactory { HostName = ip, ListenPort = 12000, Port = brokerPort }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.QueueDeclare("hello"); var consumer = new DefaultBasicConsumer(channel); var stopWatch = new Stopwatch(); ; var msgNumb = 0; var data = new List <string>(); consumer.Received += (model, ea) => { if (msgNumb == 0) { stopWatch.Start(); } msgNumb++; var body = ea.Body; var message = Encoding.UTF8.GetString(body); if (msgNumb == expectedMessages) { Console.WriteLine(msgNumb + " Received {0}", message); stopWatch.Stop(); // Get the elapsed time as a TimeSpan value. var ts = stopWatch.Elapsed; // Format and display the TimeSpan value. var elapsedTime = $"{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:00}"; Console.WriteLine("RunTime " + elapsedTime); msgNumb = 0; stopWatch = new Stopwatch(); data.Add(elapsedTime); Task.Factory.StartNew(() => File.WriteAllText("./results.txt", JsonConvert.SerializeObject(data))); } else { Console.WriteLine(msgNumb + " Received {0}", message); } }; channel.BasicConsume("hello", consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } }