开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

MQTT .golang接入有没有demo示例?

MQTT .golang接入有没有demo示例?

展开
收起
雪哥哥 2022-12-04 23:05:55 535 0
1 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    接入mqtt很简单,在接入前,肯定要先安装mqtt,记住mqtt的地址,连接的用户名和密码,然后导入mqtt的依赖,最后的代码:

    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.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 main() {
    	var broker = "broker.emqx.io"
    	var port = 1883
    	opts := mqtt.NewClientOptions()
    	opts.AddBroker(fmt.Sprintf("tcp://%s:%d", broker, port))
    	opts.SetClientID("go_mqtt_client")
    	opts.SetUsername("emqx")
    	opts.SetPassword("public")
    	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())
      }
    }
    
    2022-12-07 10:03:46
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
基于RocketMQ Prometheus Exporter 立即下载
基于RocketMQ Connect 构建全新数据流转处理平 立即下载
RocketMQ Client-GO 介绍 立即下载