ホームページ  >  記事  >  バックエンド開発  >  Golang を使用して MQTT を実装する方法を調べる

Golang を使用して MQTT を実装する方法を調べる

PHPz
PHPzオリジナル
2023-04-11 09:10:361773ブラウズ

Golang は、Google によって開発された効率的なプログラミング言語です。優れたパフォーマンスと使いやすさにより、幅広い開発者の支持を獲得しています。 MQTT は、1 対多の通信を可能にする一般的なメッセージング プロトコルであり、モノのインターネット、スマート ホーム、その他の分野で広く使用されています。今日は、Golang を使用して MQTT を実装する方法を検討します。

まず、MQTT プロトコル用の golang ライブラリを選択する必要があります。 paho、emqx など、golang で実装された MQTT ライブラリがすでに市場に多数存在します。これらのライブラリは、メッセージのパブリッシュとサブスクリプション、QoS など、MQTT プロトコルに必要なさまざまな機能を提供します。

paho を例として、golang で次のコードを使用して MQTT クライアントを作成できます:

import "github.com/eclipse/paho.mqtt.golang"

func main() {
    // 设置MQTT Broker地址和用户名密码
    opts := mqtt.NewClientOptions().AddBroker("tcp://localhost:1883").SetUsername("myuser").SetPassword("mypassword")

    // 创建一个客户端实例
    client := mqtt.NewClient(opts)
    
    // 连接到MQTT Broker
    if token := client.Connect(); token.Wait() && token.Error() != nil {
        panic(token.Error())
    }
    
    // 订阅主题
    if token := client.Subscribe("topic/test", 0, nil); token.Wait() && token.Error() != nil {
        panic(token.Error())
    }

    // 发布一条消息
    token := client.Publish("topic/test", 0, false, "Hello, world!")
    token.Wait()
}

上記のコードは、MQTT ブローカーに接続し、サブスクライブする単純な MQTT クライアントを実装します。トピックにメッセージを送信し、そのトピックにメッセージを公開します。その中で、MQTTプロトコルのさまざまな機能を「github.com/eclipse/paho.mqtt.golang」ライブラリを通じて実装しました。

paho ライブラリに加えて、emqx も golang で実装された非常に使いやすい MQTT ライブラリです。 emqx は、コンピュータ上で直接実行できる軽量の MQTT ブローカーを提供します。 paho とは異なり、emqx は、MQTT データ分析、データ ルーティング、その他の機能などの高度な機能も提供します。

独自の MQTT ブローカーを構築したい場合は、emqx の golang サンプル コードを使用できます:

import (
    "github.com/emqx/mqtt-broker"
    "github.com/emqx/mqtt-broker/pkg/logging"
)

func main() {
    // 设置MQTT Broker配置
    config := mqtt.NewDefaultConfig()
    config.Mqtt.Port = 1883
    config.Log.Level = logging.LevelInfo

    // 创建MQTT Broker实例
    server := mqtt.NewServer(config)

    // 启动MQTT Broker
    if err := server.ListenAndServe(); err != nil {
        log.Fatalf("failed to start mqtt broker: %v", err)
    }
}

上記のコードは、tcp:// を介してアクセスできる単純な emqx MQTT ブローカーを実装しています。 localhost :1883 で接続します。このブローカーは MQTT の基本機能をすべて備えており、豊富な管理および監視機能を提供します。

一般に、golang で MQTT プロトコルを実装するのは非常に簡単です。信頼できる golang MQTT ライブラリを選択し、基本的なサンプル コードを使用することで、MQTT プロトコルのさまざまな機能を迅速に実装し、プロジェクトに適用できます。

以上がGolang を使用して MQTT を実装する方法を調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。