2

我在 Meteor 应用程序中使用 node-amqp 通过 SSL 连接到 rabbitMQ 服务器。这是我的连接字符串:

var rConn = AMQP.createConnection({ url: amqps://user:pass@host:pppp, vhost: '/virthost' });

但是,没有建立连接。以下是 RabbitMQ 错误日志:

=INFO REPORT==== 25-Jun-2013::17:41:30 ===
accepting AMQP connection <0.20247.0> (xxx.xxx.xxx.xxx:pppp -> xxx.xxx.xxx.xxx:pppp)

=ERROR REPORT==== 25-Jun-2013::17:41:30 ===
error on AMQP connection <0.20231.0>: {ssl_upgrade_error,"record overflow"} (unknown POSIX error)

=INFO REPORT==== 25-Jun-2013::18:11:35 ===
accepting AMQP connection <0.22556.0> (xxx.xxx.xxx.xxx:pppp -> xxx.xxx.xxx.xxx:pppp)

=ERROR REPORT==== 25-Jun-2013::18:11:40 ===
error on AMQP connection <0.22556.0>: {ssl_upgrade_error,timeout} (unknown POSIX error)

我在记录溢出错误中所能找到的只是检查正在运行的 Erlang 版本。我试图与之建立连接的盒子正在使用最新版本。我不确定运行 RabbitMQ 的盒子,但我会调查一下。任何进一步的帮助将不胜感激。

4

1 回答 1

0

恐怕此时响应较晚,但我遇到了类似的问题,结果证明我正在将纯文本传输到 RabbitMQ 服务器套接字。服务器期待 SSL 协商,但我的客户端代码没有正确设置 SSL 套接字,而是使用常规套接字,导致“记录溢出”,就像这个一样 - 尽管我的 STOMP 已经结束并且看起来像这个:

=ERROR REPORT==== 19-Oct-2015::15:03:10 ===
STOMP detected TLS upgrade error on <0.1224.0> (127.0.0.1:52065 -> 127.0.0.1:61614): alert record overflow

http://erlang.org/pipermail/erlang-questions/2012-December/071099.html是赠品。

所以,我提供这个答案是希望下一个查看这个问题的人检查他们的客户正在向套接字喷射什么。

于 2015-10-19T18:17:20.143 回答