go - 在 Go 中通过 STOMP 连接到 ActiveMQ

标签 go activemq stomp amazon-mq

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

以下代码抛出无效命令错误:

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 协议(protocol),因此连接它的正确方法是首先自行设置 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

关于go - 在 Go 中通过 STOMP 连接到 ActiveMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51613070/

相关文章:

mysql - 在golang中扫描到结构时得到错误的时间戳

go - 在为 token 交换身份验证代码时遇到问题,请转到OAuth2

java - 确保收到消息

java - 如何使用 Spring WebSocket 向 STOMP 客户端发送错误消息?

gdb - 如何使用 GDB 正确调试 `go test -c` 生成的二进制文件?

go - 如何使用Jenkins运行SonarQube for Go代码

java - 代理关闭后,从 ActiveMQ 队列读取的独立 java 程序不会自动重新连接

java - 从死信队列恢复

c# - 处理我刚刚用 ActiveMQ 和 C# 发送的消息

tomcat - 使用 Grails Spring Websocket 插件的主机名不能为空