在 Go 中通过 STOMP 连接到 ActiveMQ

Connect to ActiveMQ via STOMP in Go

正在尝试通过 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
}

AmazonMQ 使用 stomp+ssl proto,所以正确的连接方式是先自己设置 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