Как использовать php-amqplib rabbitMQ в веб-браузере

Я пытаюсь использовать php-amqplib для отправки и получения сообщения. Работает отправка / получение на терминале. Но когда веб-браузер идет, не в состоянии получить из очереди, он постоянно ждет сообщения. Я использовал приведенный ниже код для 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();

Он получает первое сообщение из очереди, если я использую ниже функцию обратного вызова, но не использует из очереди

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

Это означает, что сообщения доступны в очереди «test22».
дай мне какую-нибудь подсказку.

7

Решение

+ Изменить echo $msg->body; в error_log($msg->body); (или другая система входа в систему, которую вы используете). Я думаю, вы, вероятно, увидите сообщения в журналах. В веб-браузере страница уже загружена, поэтому она не изменится, даже если скрипт получает сообщение.

2

Другие решения

Других решений пока нет …