我不知道为什么页面处理在出列时不会停止。我正在使用Dot net / C#。如何显示消息如果此死锁没有停止?
此外,我在教程中已经看到创建一个交换,然后创建一个动态队列并在教程号中绑定它。 3.但是在这段代码中,我从RabbitMQ c#例子中取得了它,但他们没有使用它。
我找不到随机创建的队列,然后用exchange绑定。 Emit Code在这里给出:: https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/dotnet/EmitLog.cs
并且在接收中,如果我们在发出/发送日志时没有创建任何队列,那么为什么我们在这里创建:: https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/dotnet/ReceiveLogs.cs
和此代码中出现写入Dequeue的所有死锁大部分。
using (var channel = connection.CreateModel())
{
channel.ExchangeDeclare("logs", "fanout");
var queueName = channel.QueueDeclare();
channel.QueueBind(queueName, "logs", "");
var consumer = new QueueingBasicConsumer(channel);
channel.BasicConsume(queueName, true, consumer);
Console.WriteLine(" [*] Waiting for logs." +
"To exit press CTRL+C");
while (true)
{
var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] {0}", message);
}
}
1)还有一个问题,我正在使用Exchange将消息发送给所有用户。是对还是错?因为我在阅读教程后也没有得到任何东西。他们很困惑。 我想在文本框中写一条消息,然后我希望无论何时任何用户点击接收消息,他/她都应该收到该消息。这可以使用Exchange吗?
2)对于每次/每次页面打开时,我都要创建一个新的队列/交换?
请帮帮我。