2.7.1 rabbitmq でコンパイルされた pecl 1.0.3 で amqp 拡張機能を使用しています。
基本的な消費者/生産者の例を機能させようとしていますが、エラーが発生し続けます。この拡張機能に関する php ドキュメントはほとんどなく、その多くは古くなっているか間違っているようです。
ユーザーが投稿したコードを使用しましたが、消費者の部分が機能していないようです
繋がり:
function amqp_connection() {
$amqpConnection = new AMQPConnection();
$amqpConnection->setLogin("guest");
$amqpConnection->setPassword("guest");
$amqpConnection->connect();
if(!$amqpConnection->isConnected()) {
die("Cannot connect to the broker, exiting !\n");
}
return $amqpConnection;
}
送信者:
function amqp_send($text, $routingKey, $exchangeName){
$amqpConnection = amqp_connection();
$channel = new AMQPChannel($amqpConnection);
$exchange = new AMQPExchange($channel);
$exchange->setName($exchangeName);
$exchange->setType("fanout");
if($message = $exchange->publish($text, $routingKey)){
echo "sent";
}
if (!$amqpConnection->disconnect()) {
throw new Exception("Could not disconnect !");
}
}
レシーバー:
function amqp_receive($exchangeName, $routingKey, $queueName) {
$amqpConnection = amqp_connection();
$channel = new AMQPChannel($amqpConnection);
$queue = new AMQPQueue($channel);
$queue->setName($queueName);
$queue->bind($exchangeName, $routingKey);
//Grab the info
//...
}
次に送信します。
amqp_send("Abcdefg", "action", "amq.fanout");
そしてそれを受け取る:
amqp_receive("amq.fanout","action","action");
スクリプトの実行で問題が発生し続け、amqp 受信を示します。
PHP 致命的なエラー: メッセージ「サーバー チャネル エラー: 404、メッセージ: NOT_FOUND - /home/jamescowhen/test.php:21 の vhost '/'' にキュー 'action' がありません
誰かが私を正しい方向に向けることができますか? サンプル全体は、次のユーザー ノートからのものです: http://www.php.net/manual/en/amqp.examples.php#109024