连接到RabbitMQ不工作只在PHP中

ezykj2lf  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(2)|浏览(146)

我正在尝试连接到兔子队列。由于某种原因,文档中的示例不起作用(由于某种原因,仅在PHP中)
图书馆

amqplib/php-amqplib

无法工作的PHP代码:

$connection = new AMQPStreamConnection(
    'test.cloudamqp.com',
    5671,
    'test',
    'test',
    'test'
);

我收到下一个错误:
PHP致命错误:未捕获的PhpAmqpLib\异常\AMQPConnectionClosedException:在/home/mykola/Projects/vs-php-clipping-engine/vendor/php-amqplib/php-amqplib/phpAmqpLib/Wire/IO/StreamIO中的管道或连接已关闭。php:172堆栈跟踪:首页/mykola/项目/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping-engine/vs-php-clipping//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(632):我是一个工程师,我是一个工程师,我的工作是为工程师服务,我的工作是为工程师服务。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们。
Golang代码完美工作:

package main

import (
    "log"

    amqp "github.com/rabbitmq/amqp091-go"
)

func failOnError(err error, msg string) {
    if err != nil {
        log.Panicf("%s: %s", msg, err)
    }
}

func main() {
    conn, err := amqp.Dial("amqps://test:test@test.cloudamqp.com/test")
    failOnError(err, "Failed to connect to RabbitMQ")
    defer conn.Close()

}

golang包是否有一些神奇的参数会自动应用到这个连接上?我想可能需要一些特定的参数来传递。

ar7v8xwq

ar7v8xwq1#

不要创建新的AMQPStreamConnection对象,而是创建一个新的AMQPSSLConnection
其他一切都应该是相同的,但是您可能需要设置ssl_protocol(默认为ssl)
请参阅AMQPSSLConnection

yptwkmov

yptwkmov2#

问题出在连接设置上,其他库会自动完成,但PHP不会,所以如果你想处理amqps,你需要添加证书的路径,如下所示:

$connection = new AMQPStreamConnection(
    'test.cloudamqp.com',
    5671,
    'test',
    'test',
    'vhostName',
    [
      'capath' => '/etc/ssl/certs'
    ]
);

相关问题