デキュー時にページの処理が停止しない理由がわかりません。私はドットネット/C#を使用しています。このデッドロックが止まらない場合、どのようにメッセージを表示できますか?
さらに、私はチュートリアルで交換を作成し、動的キューを作成してバインドするチュートリアルで見ました。3.しかし、どのようにこのコードに来るのか、私はrabbitMQ c# Examplesから取ってきましたが、彼らはこれを使用していません。
ランダムに作成されたキューが見つからず、交換でバインドされます。Emit コードはこちらで提供されています:: 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) もう 1 つ質問があります。Exchange を使用してすべてのユーザーにメッセージを送信しています。それは正しいですか、それとも間違っていますか?チュートリアルも読んだ後、何も得られないため、混乱しています。テキストボックスにメッセージを書きたいのですが、ユーザーがメッセージの受信をクリックするたびに、そのメッセージを受信する必要があります.これはExchangeを使用して可能ですか?
2)ページが開くたびに、新しいキュー/エクスチェンジを作成する必要がありますか?
私を助けてください。