0

RabbitMQ の amqp クライアントをamq.fanout使用してタイプの交換を作成しようとしています。rabbitmq-cしかし、私は正確に何を宣言しなければならないかについてつまずいています。thisに従って、交換の名前とタイプ、および必要に応じて交換の耐久性と有効期間のセマンティクスを宣言する必要があります。

交換を宣言すると、交換の名前であると思われる「交換」と、交換タイプ、たとえばamq.fanout. からexamples/amqp_exchange_declare.c

amqp_exchange_declare(conn,
    1,
    amqp_cstring_bytes(exchange),
    amqp_cstring_bytes(exchangetype),
    0, 0, 0, 0, 
    amqp_empty_table);

しかし、パブリッシングの例を見ると、という名前の 2 番目のパラメーターに交換タイプexchangeを指定する場所があります。例えば、examples/amqp_producer.c

amqp_basic_publish(conn,
                                1,
                                amqp_cstring_bytes("amq.direct"),
                                amqp_cstring_bytes(queue_name),
                                0,
                                0,
                                NULL,
                                message_bytes)

しかし、取引所の名前を提供する場所はありません。では、指定された取引所に公開するにはどうすればよいでしょうか?

そして、なぜ公開するために queue_name を提供しているのですか? エクスチェンジにのみ公開する必要があります。キューはパブリッシャーから隠されているはずです。これはすべて、例の変数の名前が不適切なだけですか、それとも基本的な何かが欠けていますか?

4

1 に答える 1