与 RabbitMQ 的连接失败,并显示
Error: Frame size exceeds frame max
。
虽然StackOverflow和Github上也提出了一些类似的问题,但仍然很模糊。
假设 RabbitMQ 和 amqplib 使用的 AMQP 版本不同,但如何检查呢?如果说
amqp 1.0
和amqp 0-9-1
的主要区别,那么理论上amqplib只支持0-9-1,而RabbitMQ默认支持。
还有其他想法吗?
版本:
就我而言,连接到 RabbitMQ
时出现“
帧大小超过帧最大值”错误的问题是由于 URL 的协议部分中缺少“s”(因此不是
amqp
:// 而是应该是amqps
://)
尝试在amqps仪表板上创建一个实例,成功创建实例后会生成一个URL。使用网址。 这对我有用。
对我来说,使用节点 amqplib 连接方法连接时必须指定frameMax
const connection = await connect({
protocol: 'amqp',
hostname: 'localhost',
username: 'username',
password: 'password',
vhost: '/somevhost',
frameMax: 131072
});
131072 约为 128 KB