赞
踩
package main import ( "context" "fmt" mqtt "github.com/eclipse/paho.mqtt.golang" ) var messageRecHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) { fmt.Printf("Received message: %s from topic: %s\n", msg.Payload(), msg.Topic()) } var messagePubHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) { fmt.Printf("Publish message: %s from topic: %s\n", msg.Payload(), msg.Topic()) } var connectHandler mqtt.OnConnectHandler = func(client mqtt.Client) { fmt.Println("Connected") } var connectLostHandler mqtt.ConnectionLostHandler = func(client mqtt.Client, err error) { fmt.Printf("Connect lost: %v", err) } func MqttClient() { var broker = "xxx.xxx.xxx.xx" var port = 1883 opts := mqtt.NewClientOptions() opts.AddBroker(fmt.Sprintf("tcp://%s:%d", broker, port)) opts.SetClientID("dev") opts.SetUsername("admin") opts.SetPassword("gubanjie") opts.SetDefaultPublishHandler(messagePubHandler) opts.OnConnect = connectHandler opts.OnConnectionLost = connectLostHandler client := mqtt.NewClient(opts) if token := client.Connect(); token.Wait() && token.Error() != nil { panic(token.Error()) } //client.Publish("xx-topic", 1, true, `{"from":123}`) // go Subscribe(client) <-context.Background().Done() } func main() { MqttClient() } func Publish(client mqtt.Client) { //client := MqttClient() client.Publish("xx-topic", 1, true, `{"from":123}`) } func Subscribe(client mqtt.Client) { //client := MqttClient() client.Subscribe("gubanjie", 1, messageRecHandler) }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。