我正在尝试连接到兔子队列。由于某种原因,文档中的示例不起作用(由于某种原因,仅在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包是否有一些神奇的参数会自动应用到这个连接上?我想可能需要一些特定的参数来传递。
2条答案
按热度按时间ar7v8xwq1#
不要创建新的
AMQPStreamConnection
对象,而是创建一个新的AMQPSSLConnection
其他一切都应该是相同的,但是您可能需要设置ssl_protocol(默认为ssl)
请参阅AMQPSSLConnection
yptwkmov2#
问题出在连接设置上,其他库会自动完成,但PHP不会,所以如果你想处理amqps,你需要添加证书的路径,如下所示: