您好,这个问题可能是由于您的Go客户端和RabbitMQ代理之间的TLS握手失败导致的。您可以尝试以下步骤来解决此问题:
- 确保您的Go客户端和RabbitMQ代理都使用相同的TLS版本。
- 确保您的Go客户端和RabbitMQ代理都使用相同的加密套件。
- 确保您的Go客户端和RabbitMQ代理都使用相同的证书颁发机构(CA)。
- 确保您的Go客户端和RabbitMQ代理都使用相同的密钥长度。
- 确保您的Go客户端和RabbitMQ代理都使用相同的密码套件。
如果您仍然无法解决问题,请尝试使用其他MQTT客户端库,例如Eclipse Paho MQTT C++ Client Library或Paho MQTT Golang Client。
6条答案
按热度按时间qaxu7uf21#
请查看您的错误处理,在几个情况下,当 err 不等于 nil 时,您返回了 nil。
mec1mxoz2#
你好,@davecheney,
感谢你的回复。
我认为我的这个问题不是由于错误的错误处理(在NewTLSConfig函数上没有引发错误)引起的。
问候,
Dario
iyfjxgzm3#
感谢您的回复。请理解,在没有上下文的情况下对问题进行分类是重要的,不要被不重要的事情分心。如果您能解决您示例中的错误处理并确认问题仍然存在,那将是非常有帮助的。
pvabu6sv4#
你好,@davecheney。
当然可以。
以下是主文件(main.go)的更新内容:
我可以私下发送给你我正在使用的输入(服务器主机+根CA+客户端证书+私钥),以便复制该问题。
7ajki6be5#
对不起,我可能有点啰嗦了,但fmt.Errorf并不会记录错误,它只会返回一个错误值,而这段代码正是忽略了这个错误值。
dzhpxtsq6#
我再次更新了main.go文件,但仍然遇到了相同的错误:
MQTT连接失败
恐慌:网络错误:远程错误:tls握手失败
以下是使用的main.go文件: