如何在Web浏览器上使用php-amqplib rabbitMQ

Pra*_*rak 7 php rabbitmq php-amqp rabbitmq-exchange

我正在尝试使用php-amqplib来发送和接收消息.它可以在终端上发送/接收.但是当进入Web浏览器时,无法从队列中接收它连续等待消息.我在下面的代码中使用了receive.php

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();
Run Code Online (Sandbox Code Playgroud)

如果我使用下面而不是回调函数但它不从队列中消耗,它会从队列中获取第一条消息

$abc=$channel->basic_get("test22", false, 2);    
if(!empty($abc))
{
print_r($abc->body);
} 
Run Code Online (Sandbox Code Playgroud)

这意味着消息在队列'test22'中可用.给我任何线索.

Alb*_*ido 2

更改echo $msg->body;error_log($msg->body);(或您正在使用的其他登录系统)。我想您可能会在日志上看到这些消息。在网络浏览器上,页面已经加载,因此即使脚本正在接收消息,页面也不会更改。