我在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 的盒子,但我会调查一下。任何进一步的帮助将不胜感激。
最佳答案
恐怕此时响应相当晚,但我刚刚遇到了类似的问题,结果我正在将明文通过管道传输到 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是赠品。
因此,我提供这个答案是希望下一个查看此问题的人检查他们的客户端向套接字中注入(inject)的内容。
关于node.js - meteor + Node -amqp : unable to connect via SSL to RabbitMQ server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310646/