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 サイトの他の関連記事を参照してください。