amqp_login给出“参数列表太长”错误?

时间:2011-10-04 22:37:06

标签: c messaging rabbitmq amqp

我正在使用RabbitMQ的c库。它有一个函数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 :(得分:0)

知道你正在使用的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");

您还可以尝试新的AMQP URI parser。再看一下这些例子,看看它是如何使用的。