I am trying to use php-amqplib for sending and receiving message. It works sending/receiving on terminal. But When go for web browser, unable to receive from queue it continuously waits for message. I used below code for 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();
It gets first message from queue if I use below instead of callback function but does not consume from queue
$abc=$channel->basic_get("test22", false, 2);
if(!empty($abc))
{
print_r($abc->body);
}
It means messages are available in queue 'test22'. give me any clue.
In order for a client to interact with RabbitMQ it must first open a connection. This process involves a number of steps: Application configures the client library it uses to use a certain connection endpoint (e.g. hostname and port) The library resolves the hostname to one or more IP addresses.
RabbitMQ : It is an open source message broker software. You might have heard Messaging Service by which two PHP applications can communicate with each other. Using RabbitMQ message broker two PHP applications can interact with each other in same way as we human being do by text message.
In rabbitmq, we can read or consume a published messages from queue using web management portal for that we need to login into rabbitmq web management portal using default (guest) credentials like as shown below.
Change echo $msg->body;
to error_log($msg->body);
(or other loggin system you're using). I think you'll probably will see the messages on the logs. On the web browser the page is already loaded so it won't change even if the script is receiving the message.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With