我正在尝试使用
连接到Rabbit服务器 require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPSSLConnection;
$connection = new AMQPSSLConnection ('example.com', 5671, 'uname', '***', '/some/vhost');
我得到的只是一个异常“管道破裂或关闭的连接”。服务器人员确认我的连接参数正确。我不知道该怎么办。
我正在使用PHP 7和php-amqplib v2.7.2。
帮助?
#0 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Wire\AMQPReader.php(149): PhpAmqpLib\Wire\IO\StreamIO->read(7)
#1 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Wire\AMQPReader.php(106): PhpAmqpLib\Wire\AMQPReader->rawread(7)
#2 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Connection\AbstractConnection.php(522): PhpAmqpLib\Wire\AMQPReader->read(7)
#3 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Connection\AbstractConnection.php(570): PhpAmqpLib\Connection\AbstractConnection->wait_frame(3)
#4 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Channel\AbstractChannel.php(225): PhpAmqpLib\Connection\AbstractConnection->wait_channel(0, 3)
#5 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Channel\AbstractChannel.php(335): PhpAmqpLib\Channel\AbstractChannel->next_frame(3)
#6 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Connection\AbstractConnection.php(214): PhpAmqpLib\Channel\AbstractChannel->wait(Array, false, 3)
#7 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Connection\AbstractConnection.php(189): PhpAmqpLib\Connection\AbstractConnection->connect()
#8 vendor\php-amqplib\php-amqplib\PhpAmqpLib\Connection\AMQPStreamConnection.php(60): PhpAmqpLib\Connection\AbstractConnection->__construct('t
答案 0 :(得分:0)
我遇到了同样的问题。我花了很多时间才修复它,因为我没有对 RabbitMQ 和日志的管理员访问权限。我通过将 AMQPLAIN
登录方法更改为 PLAIN
解决了这个问题。我使用了 AMQPStreamConnection
而不是 AMQPSSLConnection
,但语法非常相似。
AMQPStreamConnection:
$connection = new AMQPStreamConnection(
config('amqp.host'),
config('amqp.port'),
config('amqp.username'),
config('amqp.password'),
config('amqp.vhost'),
false,
'PLAIN'
);
AMQPSSL 连接:
$connection = new AMQPSSLConnection(
config('amqp.host'),
config('amqp.port'),
config('amqp.username'),
config('amqp.password'),
config('amqp.vhost'),
[], // Your SSL options
['login_method' => 'PLAIN'] // Your options
);