当前位置:   article > 正文

Golang MQTT使用教程_goland整合mqtt使用init函数运行

goland整合mqtt使用init函数运行

安装依赖

go get github.com/eclipse/paho.mqtt.golang
  • 1

定义连接信息

const (
	ADDRESS   = "tcp://127.0.0.1:1883"
	USER_NAME = "admin"
	PASSWORD  = "public"
	TOPIC     = "test"
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

定义连接池

var (
	MqttClient mqtt.Client
)
  • 1
  • 2
  • 3

初始化

// initMqtt
/**
 *  @Description: 初始化MQTT
 */
func initMqtt() {
	opts := mqtt.NewClientOptions()
	// 添加代理
	opts.AddBroker(ADDRESS)
	// 设置用户名
	opts.SetUsername(USER_NAME)
	// 设置密码
	opts.SetPassword(PASSWORD)
	// 使用连接信息进行连接
	MqttClient = mqtt.NewClient(opts)
	if token := MqttClient.Connect(); token.Wait() && token.Error() != nil {
		fmt.Println("订阅 MQTT 失败")
		panic(token.Error())
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

定义QOS

const (
	QoS0 = 0 // 至多一次
	QoS1 = 1 // 至少一次
	QoS2 = 2 // 确保只有一次
)
  • 1
  • 2
  • 3
  • 4
  • 5

发布

// publish
/**
 *  @Description: 发布消息
 *  @param msg
 */
func publish(msg string)  {
	MqttClient.Publish(TOPIC, QoS2, true, msg)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

订阅消息

// subscribe
/**
 *  @Description: 订阅
 */
func subscribe() {
	MqttClient.Subscribe(TOPIC, QoS2, subCallBackFunc)
}

// subCallBackFunc
/**
 *  @Description: 回调函数
 *  @param client
 *  @param msg
 */
func subCallBackFunc(client mqtt.Client, msg mqtt.Message) {
	fmt.Printf("订阅: 当前话题是 [%s]; 信息是 [%s] \n", msg.Topic(), string(msg.Payload()))
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42886
推荐阅读
相关标签
  

闽ICP备14008679号