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 測試結果如下
receive.php復制創建文件receive_new.php并把receive_new.php中的queue_name 改為 queue_name_test
這樣我們測試交換機是否發送給了綁定這兩個消息隊列
可以看出消息同時發送給兩個隊列
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答