.Net との MQTT クライアントの接続性

テキストコピッド

導入事例

このガイドでは、シンプルに制作することであなたを歩きますMQTT クライアント. . ネットとネットMQTTnetの特長ライブラリ。 クライアントはMQTTブローカーに接続します。

セットアップと依存関係

開始する前に、以下がインストールされ、設定されていることを確認してください。

  • オンラインSDK(バージョン6.0以降推奨)
    チェックイン:
  • ログイン --バージョン

  • MQTTについてローカルかリモートで動くこと
  • MQTTnetライブラリをプロジェクトに追加
    プロジェクトディレクトリに移動し、実行します。
  • dotnet パッケージを追加 MQTTnet --バージョン 4.3.6.1152

MQTTの特長 コネクト

このセクションでは、さまざまな方法で接続することができますMQTTについてPythonを使う。 先に進む前に、ブローカーが所望の接続方法(TCP、TLS、WebSocket、 等)および正しい関係変数があります:

  • サイトマップ
  • ポート番号
  • サイトマップ(必須)
  • 認証機関(TLS接続用)

基本TCP コネクション

MqttClientOptionsBuilder() の新機能
.WithClientId (「testClientDotNet4」)
.WithTcpServer("localhost"), 1883)
. ビルド();
// MQTT クライアント
var の工場 = の新しい MqttFactory();
var mqttClient = factory.CreateMqttClient() ;
mqttClient.UseConnectedHandler(非同期 =>)
お問い合わせ
Console.WriteLine("MQTT ゲートウェイ)
お問い合わせ
// MQTT は、
mqttClient.ConnectAsync(options) を続けてください。


認証と接続:

MqttClientOptionsBuilder() の新機能
.WithClientの Id (「testclient」)
.WithTcpServer("localhost"), 1883)
.WithCredentials("username"、"password") // は、 ユーザ名 と ユーザ名
. ビルド();


TLS/SSL に接続

MqttClientOptionsBuilder() の新機能
.WithClientの Id(「testcient」)
. . . withTcpServer(GetHostFromAddress(ADDRESS)、GetPortFromAddress(ADDRESS))
. . withTls (新しいMqttClientOptionsBuilderTlsParameters)
お問い合わせ
useTls = true,
証明書 = 新規リスト(), // // // // // // // // // クライアントの証明書を新規に追加する
ハンドラ = ハンドラ
お問い合わせ
// ライセンス
お問い合わせ SslPolicyの特長 エラー ================================================================================================================================================================================================================================================================
お問い合わせ
AllowUntrustedCertificates = false, // ライセンス認証なし
証明書の誤りは、
証明書の出金エラーは、
お問い合わせ
. ビルド();

WebSocketを介して接続

MqttClientOptionsBuilder() の新機能
.WithClientの Id (「testclient」)
. . . withWebSocketServer("ws://localhost:10443/mqtt") // WebSocket Server URI の操作
. ビルド();

MQTT出版

var メッセージ = 新規 MqttApplicationメッセージビルダー()
お問い合わせ トピック(トピック)
.WithPayload($) のメール、MQTT! のメール番号{i}
. . withQualityOfServiceLevel(MqttQualityOfServiceLevel.AtLeastOnce)と
.WithRetainFlag()の
. ビルド();
mqttClient.PublishAsync(メッセージ) をお待ちしています。
1秒待ち時間

MQTTの特長 会員登録

mqttClient.SubscribeAsync(トピック)を待ってください。

MQTTの切断

mqttClient.DisconnectAsync() を待ちます。

サンプル クライアント

System.Security.Authentication の設定
システム使用 テキスト;
MQTTnet の設定
MQTTnet。 クライアント
MQTTnet。 プロトコル;
授業プログラム
お問い合わせ
静的非同期タスク(string[] args)
お問い合わせ
"localhost" を文字列として指定します。
int ポート = 1883;
文字列 クライアント Id = Guid.NewGuid().ToString(); ;
string トピック = "sensor/data";
// MQTT クライアント
var の工場 = の新しい MqttFactory();
// MQTT クライアント
var mqttClient = factory.CreateMqttClient() ;
// MQTT のオプション
MqttClientOptionsBuilder() の新機能
. . MQTT アドレスとポート
お問い合わせ スタッフ Id (IDクライアント)
.WithCleanSession() の使い方
. . withCredentials(「メールアドレス」)
// .WithProtocolVersion(MQTTnet.Formatter.MqttProtocolVersion.V500) //mqttバージョン
. ビルド();
MQTTとは
var connectResult = mqttClient.ConnectAsync(options) を続けてください。
結果コード == MqttClientConnectResultCode.Success ディレクティブ
お問い合わせ
Console.WriteLine(「MQTTセキュア接続」)
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
mqttClient をフォローします。
// ユーザ名
mqttClient.ApplicationMessageReceivedAsync += e =>
お問い合わせ
Console.WriteLine($) のメッセージ:{Encoding.UTF8.GetString(e.ApplicationMessage.PayloadSegment)});););););;;;;;;;;;;
タスクをクリアする
お問い合わせ
var メッセージ = 新規 MqttApplicationのメッセージ
お問い合わせ トピック(トピック)
.WithPayload($「こんにちは、MQTT!」)
. . withQualityOfServiceLevel(MqttQualityOfServiceLevel.AtLeastOnce)と
.WithRetainFlag()の
. ビルド();
Console.WriteLine($) のメール送信完了: {Encoding.UTF8.GetString(message.PayloadSegment)}");
mqttClient をお待ちしています。 PublishAsync(メッセージ)
1秒待ち時間
// 退会と接続解除
mqttClient をお待ちしています。UnsubscribeAsync(トピック);
mqttClient.DisconnectAsync() を待機します。
お問い合わせ
お問い合わせ
お問い合わせ
Console.WriteLine($"MQTT ゲートウェイ:{connectResult.ResultCode}");
お問い合わせ
お問い合わせ
お問い合わせ

次のコマンドを実行する。

dotnet 実行

スケール .NET IoT ソリューション 快適!

高性能、低レイテンシのメッセージング
ミッションクリティカルなアプリ

.NET クライアントを MQTT ブローカーに接続し、信頼性とセキュリティで大規模な IoT プロジェクトに電力を供給します。