在这个示例中,我们创建了一个连接到broker.hivemq.com的MQTT客户端,并设置了客户端ID为GoClient。如果连接成功,会打印出"Connected to MQTT broker"的消息;如果连接失败,则会记录错误信息并退出程序。
1、当服务器启动后调用InitClient,此方法中有一个设置 {opts.CleanSession = true} ,再使用go关键字异步调用SubscribB。 2、这时手机是可以操作设备的。 3、当MQTT服务器断开链接,服务器的client也重新链接,手机就再也操作不了设备。 4、查找资料发现opts.CleanSession设置为true时,断开链接,订阅的主题都会被清空。
packagemainimport("fmt"mqtt"github.com/eclipse/paho.mqtt.golang""time")varmessagePubHandler mqtt.MessageHandler =func(client mqtt.Client, msg mqtt.Message){ fmt.Printf("Received message: %s from topic: %s\n", msg.Payload(), msg.Topic()) }varconnectHandler mqtt.OnConnectHandler =func(client...
}funcmain(){varbroker ="broker.emqx.io"//地址varport =1883// 端口opts := mqtt.NewClientOptions() opts.AddBroker(fmt.Sprintf("tcp://%s:%d", broker, port)) opts.SetClientID("go_mqtt_client111")//设备唯一id,正常应该是设备拿自己的设备id注册到服务器上。opts.SetUsername("emqx")//账号o...
ClientOptions:用于设置 broker,端口,客户端 id ,用户名密码等选项 messagePubHandler:全局 MQTT pub 消息处理 connectHandler:连接的回调 connectLostHandler:连接丢失的回调 如果想使用 TLS 连接,可以如下设置: funcNewTlsConfig()*tls.Config { certpool := x509.NewCertPool() ...
client :=MQTT.NewClient(opts)iftoken := client.Connect(); token.Wait() && token.Error() !=nil { panic(token.Error()) }var( namestringageintmarriedbool) fmt.Scan(&name, &age, &married) fmt.Printf("扫描结果 name:%s age:%d married:%t\t", name, age, married) ...
package main import ( "fmt" mqtt "github.com/eclipse/paho.mqtt.golang" "time" ) var messagePubHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) { fmt.Printf("Received message: %s from topic: %s\n", msg.Payload(), msg.Topic()) } var connectHandler mqtt.OnConne...
"github.com/eclipse/paho.mqtt.golang" ) func main() { opts := mqtt.NewClientOptions().AddBroker("tcp://test.mosquitto.org:1883") // 定义代理地址和端口 opts.SetClientID("go-mqtt-client") // 设置客户端ID client := mqtt.NewClient(opts) ...
在上述代码中,我们先创建了一个ClientOption对象,通过设置相关必要信息,从而连接到本地的MQTT broker。需要注意的是,broker的topic的命名必须以‘/’来连接,不能出现空格。 步骤三:编译这段代码之后,我们通过下载好的客户端mqttx,通过点击左侧添加按钮创建一个新的连接: ...
接下来,可以使用以下代码实现一个简单的MQTT发布者: packagemainimport("fmt""os""time""github.com/eclipse/paho.mqtt.golang")funcmain(){ opts := mqtt.NewClientOptions().AddBroker("tcp://localhost:1883") client := mqtt.NewClient(opts)iftoken := client.Connect(); token.Wait() && token.Error...