【发布时间】:2018-04-12 10:05:59
【问题描述】:
我正在使用 PHP 中的 RabbitMQ。我可以发送消息,但接收端出现问题。
这是我的发件人代码
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$consumerTag = 'consumer' . getmypid();
$channel->queue_declare('loggingQ', false, true, false, false);
$msg = new AMQPMessage("hi");
$channel->basic_publish($msg, '', 'loggingQ');
$channel->close();
$connection->close();
这是接收者的代码
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('loggingQ', false, true, false, false);
$callback = function($msg) {
echo $msg->body;
};
$channel->basic_consume('loggingQ', '', false, true, false, false, $callback);
while(count($channel->callbacks)) {
$channel->wait();
}
$channel->close();
$connection->close();
现在问题出在我的接收端,它从不回显消息。它只是不断请求,就像永无止境的过程。
我如何在 callback 方法中获取我的消息。它从不打印任何东西。 任何帮助将不胜感激。
【问题讨论】:
-
我假设您在启动 Sender 之前启动了接收器。
-
@NigelRen 不,这两个代码都放在不同的文件中。发送者文件调用接收者代码的文件。所以在任何情况下,第一个发送者文件都会执行,然后是接收者。