状況はそうです。
PHP PECL AMQP RabbitMQ クライアントを使用しています。Exchange に初めてメッセージを送信しようとすると、何も起こりません。メッセージが送信されていないようで、AMQPExchange::publish が true を返しても、AMQPQueue::get は何も返しません。
その後 (つまり、2 回目の為替宣言の後)、すべて正常に動作します。
それは何でしょうか?
アップデート。コードサンプル。
<?php
$connection = new AMQPConnection;
//config...
$connection->connect();
$channel = new AMQPChannel($connection);
$exchange = new AMQPExchange($channel);
$exchange->setName('test_exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declareExchange();
$exchange->setFlags(AMQP_DURABLE);
$exchange->bind('test_exchange', 'test_routing_key');
$exchange->publish('test_message', 'test_routing_key');
$queue = new AMQPQueue($channel);
$queue->setName('test_routing_key');
$queue->declareQueue();
$queue->bind('test_exchange', 'test_routing_key');
var_dump($queue->get(AMQP_AUTOACK));