我想确保我的程序在无法连接到MQTT服务器时崩溃。为此,我将ConnectTimeout设置为10秒,但是当连接到不存在的服务器(名称不存在)时,对MQTT的调用挂起。
package main
import (
"fmt"
"time"
mqtt "github.com/eclipse/paho.mqtt.golang"
)
func main() {
timeout, _ := time.ParseDuration("10s");
opts := mqtt.NewClientOptions()
opts.AddBroker("tcp://this.does.not.resolve.example.coooom:1883")
opts.SetClientID("monitor")
opts.SetOrderMatters(false)
opts.SetConnectRetry(true)
opts.SetConnectTimeout(timeout)
client := mqtt.NewClient(opts)
if token := client.Connect(); token.Wait() && token.Error() != nil {
panic(fmt.Sprintf("cannot connect to MQTT: %v", token.Error()))
}
}
如何正确设置超时?
料青山看我应如是
临摹微笑
相关分类