使用golang连接到Active MQ

时间:2017-12-08 00:25:39

标签: amazon-web-services activemq amqp stomp

Amazon MQ(Active MQ)说它适用于amqp,并且这里有一个go包https://github.com/streadway/amqp但是当我尝试拨打()时出现此错误

Exception (501) Reason: "Exception (501) Reason: \"frame could not be parsed\""

我怀疑是因为虽然这是一个amqp包,而且Amazon MQ接受amqp,但这特别是一个RabbitMQ amqp包...这有意义吗?

另一种选择是STOMP,我尝试使用此处的示例https://github.com/go-stomp/stomp/blob/master/examples/client_test/main.go 但是Dial()给了我这个超级无用的错误:“无效命令”

尴尬问如何连接,但这就是我被困住的地方。提前致谢

2 个答案:

答案 0 :(得分:2)

AMQP 0.x(RabbitMQ)是一种与AMQP 1.0(ActiveMQ等)完全不同的协议。 AMQP 1.0不向后兼容。

您需要一个支持AMQP 1.0的客户端库。

我还没有测试过,但这个lib声称可以正常工作。 https://github.com/vcabbage/amqp

答案 1 :(得分:1)

您需要一个AMQP 1.0客户端库。 Apache的Qpid项目为AMQP 1.0维护了几种不同的语言绑定,其中一种是Go客户端,并记录了here和一些示例here

对于STOMP尝试,可能是您没有尝试连接到代理上的正确端口,这可能导致客户端向您提供该错误。 STOMP端口通常为61613,AMQP为5672。