我安装了最新版本og php-amqp,但似乎无法使用方法channel()
。这是代码
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once __DIR__.'/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$cnn = new AMQPConnection();
// set the login details
$cnn->setLogin('guest');
$cnn->setPassword('guest');
if ($cnn->connect()) {
echo "Established a connection to the broker";
}
else {
echo "Cannot connect to the broker";
}
$channel = $cnn->channel();
$channel->queue_declare('email_queue', false, false, false, false);
$data = 'lorem ipsum';
$msg = new AMQPMessage($data, array('delivery_mode' => 2));
$channel->basic_publish($msg, '', 'email_queue');
?>
这就是我得到的
建立与经纪人的连接 致命错误:未捕获错误: 调用未定义的方法AMQPConnection :: channel()in /var/www/html/rabbit.php:26堆栈跟踪:#0 {main}被投入 第26行/var/www/html/rabbit.php
答案 0 :(得分:0)
我这样解决了
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once __DIR__.'/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$cnn = new AMQPConnection();
$channel = $connection->channel();
if ($cnn->connect()) {
echo "Established a connection to the broker";
}
else {
echo "Cannot connect to the broker";
}
$channel->queue_declare('rand', false, false, false, false);
$data = rand(35,887);
$msg = new AMQPMessage($data, array('delivery_mode' => 2));
$channel->basic_publish($msg, '', 'rand');
$channel->close();
$connection->close();
?>