Rabbitmq-c: ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ прямой ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Futrue Π² librabbitmq?

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 7 июл. 2017  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: alanxz/rabbitmq-c

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, я пСрСписал ΠΏΡ€ΠΈΠΌΠ΅Ρ€ amqp_rpc_sendstring_client, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прямой ΠΎΡ‚Π²Π΅Ρ‚ с этим ΠΊΠΎΠ΄ΠΎΠΌ:

  {
    /*
      set properties
    */
    reply_to_queue = amqp_cstring_bytes("amq.rabbitmq.reply-to");
    amqp_basic_properties_t props;
    props._flags = AMQP_BASIC_CONTENT_TYPE_FLAG |
                   AMQP_BASIC_DELIVERY_MODE_FLAG |
                   AMQP_BASIC_REPLY_TO_FLAG |
                   AMQP_BASIC_CORRELATION_ID_FLAG;
    props.content_type = amqp_cstring_bytes("text/plain");
    props.delivery_mode = 2; /* persistent delivery mode */
    props.reply_to = amqp_bytes_malloc_dup(reply_to_queue);
    if (props.reply_to.bytes == NULL) {
      fprintf(stderr, "Out of memory while copying queue name");
      return 1;
    }
    props.correlation_id = amqp_cstring_bytes("1");

    /*
      publish
    */
    die_on_error(amqp_basic_publish(conn,
                                    1,
                                    amqp_cstring_bytes(exchange),
                                    amqp_cstring_bytes(routingkey),
                                    1,
                                    0,
                                    &props,
                                    amqp_cstring_bytes(messagebody)),
                 "Publishing");

    amqp_bytes_free(props.reply_to);
  }

Π½ΠΎ ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ Π½ΠΎΠ²Ρ‹ΠΉ amqp_rpc_sendstring_client Π½Π° ΠΌΠΎΠ΅ΠΌ rabbitmq-server 3.6.10, ΠΎΠ½ сообщаСт ΠΎΠ± ошибкС:

Consuming: server channel error 406h, message: PRECONDITION_FAILED - fast reply consumer does not exist

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ потрСбитСля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ amqp_basic_consume Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ amq.rabbitmq.reply-to ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСниС.

Π‘ΠΌ. Https://www.rabbitmq.com/direct-reply-to.html

ВсС 4 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ потрСбитСля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ amqp_basic_consume Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ amq.rabbitmq.reply-to ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСниС.

Π‘ΠΌ. Https://www.rabbitmq.com/direct-reply-to.html

Бпасибо Π·Π° ΠΎΡ‚Π²Π΅Ρ‚!
ΠΈ Π΄Π°, я использовал amqp_basic_consume Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ amq.rabbitmq.reply-to. Π½ΠΎ ΠΎΠ½ всСгда сообщаСт ΠΎΠ± ошибкС PRECONDITION_FAILED. я ΡΠΊΡƒΡ‡Π°ΡŽ ΠΏΠΎ Ρ‡Π΅ΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ?

Ой, Ρ‚Ρ‹ имССшь Π² Π²ΠΈΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ amqp_basic_consume ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
Π‘ΠŸΠΠ‘Π˜Π‘Πž!

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ цзянрТ,

НС ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ здСсь псСвдокодом для прямого ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСру.

Π― ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ способом, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡ‚Π²Π΅Ρ‚Π°.
Если потрСбуСтся, я подСлюсь своим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я пСрСписал.

Бпасибо,

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ