P是消息 X是交换机 红色格子是消息队列
我们模拟代码测试如下验证:
1、是否忽略routing_key
2、发送给绑定交换机中的所有队列
发送信息的代码:send.php
<?php$connect = new AMQPConnection();$connect->connect();$channel = new AMQPChannel($connect);$exchange = new AMQPExchange($channel);$exchange->setName('error');$exchange->publish("send message content",'routing_key');$connect->disconnect();?>
接收信息的代码:receive.php
<?php//链接$connect = new AMQPConnection();$connect->connect() || die('链接服务器失败');//通道$channel = new AMQPChannel($connect);//交换机$exchange = new AMQPExchange($channel);$exchange->setName('error');$exchange->setType(AMQP_EX_TYPE_FANOUT);$exchange->declare();//队列$queue = new AMQPQueue($channel);$queue->setName('queue_name');$queue->declare();$queue->bind('error', 'routing_key');while (true) { $queue->consume('callback');}function callback($envelope, $queue) { var_dump($envelope->getBody()); $queue->nack($envelope->getDeliveryTag());}?>1、验证 是否忽略routing_key
send.php中routing_key改为其他的比如 routing_key_test 测试结果如下
2、发送给绑定交换机中的所有队列receive.php复制创建文件receive_new.php并把receive_new.php中的queue_name 改为 queue_name_test
这样我们测试交换机是否发送给了绑定这两个消息队列
可以看出消息同时发送给两个队列
PHP编程郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答