小编Hug*_*ugo的帖子

在rabbitmq-c中使用默认交换

我正在尝试连接到centos 5.6中的rabbitmq-c,并按照网站的步骤在c客户端测试其功能:http://www.rabbitmq.com/tutorials/tutorial-one-java.html .但是,当我使用默认交换时,它会失败.

例如,我想通过名称为"(AMQP默认值)"的默认交换机向名为"myqueue"的队列发送消息"Hello world".

在java中,这是代码:

channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
Run Code Online (Sandbox Code Playgroud)

但是在c中,我运行rmq_new_task.c(几乎与amqp_sendstring.c相同)作为https://github.com/liuhaobupt/rabbitmq_work_queues_demo-with-rabbit-c-client-lib上的示例.

queuename="myqueue";
......
die_on_error(amqp_basic_publish(conn, amqp_cstring_bytes(exchange),
    amqp_cstring_bytes(routingkey), &props, amqp_cstring_bytes("Hello world")),
    "Publishing");
Run Code Online (Sandbox Code Playgroud)

在java客户端中,我们只需将参数"exchange"设置为"",告诉服务器我们将消息通过默认交换发送到与routingkey相同的指定队列.

那么我应该在c客户端(使用默认交换)给出第二个参数"exchange"的值是多少?我试图将其设置为""或"amq.direct".它在跑步时没有显示任何错误,似乎运作良好.

但是,当我检查了rabbitmq-management(http:// localhost:55672 /#/ queues)时,名为"myqueue"的队列不存在!

有人请指出我正确的方向吗?我真的很感激!

c client exchange-server default rabbitmq

5
推荐指数
1
解决办法
5739
查看次数

标签 统计

c ×1

client ×1

default ×1

exchange-server ×1

rabbitmq ×1