我正在使用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();
现在问题出在我的接收端,它从不回应消息。它只是一直在请求永无止境的过程。
如何在回调方法中收到我的消息。它从不打印任何东西。 任何帮助将不胜感激。
答案 0 :(得分:0)
我对RabbitMQ没有太多的经验,所以很遗憾可能是一个糟糕的解释,但我使用它的方式是遵循https://www.rabbitmq.com/tutorials/tutorial-two-php.html的教程。我认为通常假设您的工作人员已准备好处理发送的任何消息(这取决于队列类型)。
如果您希望留言,则需要将其称为...
$msg = new AMQPMessage("hi",
array('delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT)
);