amqp_login выдает ошибку «Список аргументов слишком длинный»? - PullRequest
1 голос
/ 05 октября 2011

Я использую библиотеку c RabbitMQ. Имеет функцию amqp_login

Я использую его следующим образом.

 ::amqp_rpc_reply_t c_amqp_rpc_reply = 
                       ::amqp_login
                             ( m_amqp_connection_state
                             , "fortytwo"
                             , 0
                             , FRAME_MAX
                             , 0
                             , 131072
                             , "guest"
                             , "guest"
                             );

Это дает мне ошибку, так как список аргументов слишком длинный.

У любого есть идея, чтобы это исправить.

1 Ответ

0 голосов
/ 10 октября 2011

Было бы действительно полезно узнать, какую версию librabbitmq вы используете.

В текущей версии есть этот прототип для amqp_login, поэтому ваш шестой параметр (131072) выглядит подозрительно.

RABBITMQ_EXPORT amqp_rpc_reply_t amqp_login(amqp_connection_state_t state,
                                            char const *vhost,
                                            int channel_max,
                                            int frame_max,
                                            int heartbeat,
                                            amqp_sasl_method_enum sasl_method, ...);

Глядя на примеры, я думаю, вы, вероятно, хотите:

amqp_login(conn, "/", 0, 131072, 0,
           AMQP_SASL_METHOD_PLAIN,
           "guest", "guest");

Вы также можете попробовать новый fangled AMQP URI парсер .Опять же, посмотрите на примеры, чтобы увидеть, как это используется.

...