通过Go中的STOMP连接到ActiveMQ

时间:2018-07-31 12:08:50

标签: go activemq stomp amazon-mq

尝试通过github.com/go-stomp/stomp库连接到AWS上的ActiveMQ实例。

以下代码引发invalid command错误:

func (s *STOMP) Init() error {
    netConn, err := stomp.Dial("tcp", "host:61614")
    if err != nil {
        return errors.Wrap(err, "dial to server")
    }

    s.conn = netConn

    return nil
}

1 个答案:

答案 0 :(得分:1)

AmazonMQ使用stomp + ssl原型,因此连接到它的正确方法是首先自行设置TLS连接:

func (s *STOMP) Init() error {
    netConn, err := tls.Dial("tcp", "host:61614", &tls.Config{})
    if err != nil {
        return errors.Wrap(err, "dial tls")
    }
    stompConn, err := stomp.Connect(netConn)
    if err != nil {
        return errors.Wrap(err, "dial to server")
    }

    s.conn = stompConn

    return nil
}

https://github.com/go-stomp/stomp/wiki/Connect-using-TLS