メッセージの送受信にphp-amqplibを使用しようとしています。それは、端末上で送受信を行う。しかし、Webブラウザに行くと、キューから受信することができず、メッセージを継続的に待ちます。私はreceive.phpのコードの下に使用さウェブブラウザでphp-amqplib rabbitMQを使用する方法
require_once(__DIR__ . '/lib/php-amqplib/amqp.inc');
include_once(__DIR__ . '/config/config.php');
$connection = new AMQPConnection(HOST, PORT, USER, PASS, VHOST);
$channel = $connection->channel();
$channel->queue_declare('test22');
$callback = function($msg){
echo $msg->body;
};
$channel->basic_consume('test22', 'consumer_tag', false, true, false, false, $callback);
while(count($channel->callbacks)) {
$channel->wait();
}
$channel->close();
$connection->close();
私が代わりにコールバック関数の下に使用しますが、キューから消費しないならば、それは「メッセージがキューに利用可能であることを意味
$abc=$channel->basic_get("test22", false, 2);
if(!empty($abc))
{
print_r($abc->body);
}
キューから最初のメッセージを取得しますテスト22 '。 私に手がかりを与えてください。
使用しているライブラリのバージョンは?このファイル 'amqp.inc'は現代版のライブラリではもう使われていません。私はあなたがこれを使用することをお勧めします:https://github.com/videlalvaro/php-amqplib/ –
https://getcomposer.org/を介してPHPサードパーティを使用する方がよいでしょう。 – smarber
あなたのreceive.php/consumerは、ターミナル経由でプロセスとして実行する必要があります。次に、端末またはブラウザの実行スクリプトから送信されたメッセージをプルする必要があります。 – OddEssay