全部产品
Search
文档中心

IoT Platform:Menggunakan klien Paho MQTT C#

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan pustaka Paho Message Queuing Telemetry Transport (MQTT) untuk C# guna terhubung dan berkomunikasi dengan IoT Platform.

Prasyarat

Produk dan perangkat telah dibuat di konsol IoT Platform. Properti LightSwitch didefinisikan pada tab Define Feature halaman Detail Produk.

Untuk informasi lebih lanjut, lihat Buat Produk, Buat Perangkat, dan Tambahkan Fitur TSL.

Informasi latar belakang

Kode sumber terbuka Paho MQTT untuk C# mencakup solusi Visual Studio. Setiap proyek dalam solusi dapat digunakan untuk menghasilkan pustaka untuk platform .NET tertentu.

Dalam contoh ini, sebuah proyek aplikasi konsol dibuat dalam solusi, dan pustaka Paho MQTT digunakan untuk terhubung ke IoT Platform.

Siapkan lingkungan pengembangan

Lingkungan pengembangan dalam contoh ini terdiri dari komponen-komponen berikut:

  • Sistem Operasi: Windows 10

  • Lingkungan Pengembangan Terintegrasi (IDE): Visual Studio 2019

Untuk menginstal IDE, ikuti langkah-langkah berikut:

  1. Unduh Visual Studio Community 2019 dan ekstrak paketnya.

  2. Klik dua kali file instalasi untuk memulai Visual Studio Installer. Pilih .NET desktop development dan klik Install.

Unduh klien Paho MQTT C#

Unduh kode sumber Paho MQTT untuk C#. Kode tersebut mencakup file solusi Visual Studio bernama M2Mqtt.sln. Anda dapat menggunakan file ini untuk mengembangkan perangkat Anda. Untuk informasi lebih lanjut, lihat Hubungkan Perangkat ke IoT Platform.

Untuk informasi lebih lanjut tentang instruksi kode sumber Paho, kunjungi GitHub.

Dalam topik ini, cabang master digunakan untuk mengembangkan kode sampel. ID commit adalah b2e64bc4485721a0bd5ae805d9f4917e8d040e81.

Hubungkan perangkat ke IoT Platform

  1. Klik MqttSign.cs untuk melihat kode sumber yang disediakan oleh Alibaba Cloud. Anda harus menggunakan kode sumber ini untuk mendapatkan parameter koneksi MQTT.

    File MqttSign.cs menentukan kelas MqttSign.

    • Sintaksis

      class MqttSign
    • Deskripsi

      Anda dapat menggunakan kelas ini untuk mendapatkan parameter koneksi MQTT berikut: username, password, dan clientid.

    • Anggota

      Tipe

      Metode

      public bool

      calculate(String productKey, String deviceName, String deviceSecret)

      Menghitung parameter username, password dan clientid berdasarkan parameter productKey, deviceName dan deviceSecret.

      public String

      getUsername()

      Mendapatkan parameter username.

      public String

      getPassword()

      Mendapatkan parameter password.

      public String

      getClientid()

      Mendapatkan parameter clientid.

  2. Buka Visual Studio. Impor file solusi Visual Studio bernama M2Mqtt.sln dan buat proyek aplikasi.

  3. Impor file MqttSign.cs yang Anda unduh di Langkah 1 ke proyek aplikasi.

  4. Di proyek aplikasi, tambahkan file program yang dapat menghubungkan perangkat ke IoT Platform.

    Anda harus menulis program untuk menggunakan kelas MqttSign di file MqttSign.cs. Dengan cara ini, Anda bisa mendapatkan parameter yang digunakan untuk menetapkan koneksi MQTT dengan IoT Platform.

    Bagian ini memberikan petunjuk pengembangan dan kode sampel untuk menetapkan koneksi.

    • Dapatkan parameter koneksi MQTT.

      Gunakan kelas MqttSign di file MqttSign.cs untuk mendapatkan parameter koneksi MQTT.

      String productKey = "a1X2bEn****";
      String deviceName = "example1";
      String deviceSecret = "ga7XA6KdlEeiPXQPpRbAjOZXwG8y****";
      
      // Dapatkan parameter koneksi MQTT. 
      MqttSign sign = new MqttSign();
      sign.calculate(productKey, deviceName, deviceSecret);
      
      Console.WriteLine("username: " + sign.getUsername());
      Console.WriteLine("password: " + sign.getPassword());
      Console.WriteLine("clientid: " + sign.getClientid());
    • Buat klien Paho MQTT untuk terhubung ke IoT Platform.

      // Gunakan klien Paho MQTT C# untuk terhubung ke IoT Platform. 
      int port = 443;
      String broker = productKey + ".iot-as-mqtt.cn-shanghai.aliyuncs.com";
      
      MqttClient mqttClient = new MqttClient(broker, port, true, MqttSslProtocols.TLSv1_2, null, null);
      mqttClient.Connect(sign.getClientid(), sign.getUsername(), sign.getPassword());
      
      Console.WriteLine("Broker: " + broker + " Terhubung");
      Catatan

      Ubah titik akhir di String broker = productKey + ".iot-as-mqtt.cn-shanghai.aliyuncs.com";.

      Untuk informasi lebih lanjut tentang titik akhir instance publik dan instance Enterprise Edition serta format titik akhir, lihat Lihat Titik Akhir Suatu Instance.

    • Kirimkan data ke IoT Platform.

      Kode sampel berikut digunakan untuk mengirimkan properti LightSwitch.

      // Publikasikan pesan menggunakan Paho MQTT. 
      String topic = "/sys/" + productKey + "/" + deviceName + "/thing/event/property/post";
      String message = "{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"LightSwitch\":0}}";
      mqttClient.Publish(topic, Encoding.UTF8.GetBytes(message));

      Untuk informasi tentang format data TSL, lihat Properti Perangkat, Acara, dan Layanan.

      Untuk informasi tentang cara menggunakan topik kustom untuk komunikasi, lihat Topik.

    • Langgani topik untuk menerima pesan dari IoT Platform.

      Contoh berikut menunjukkan cara melanggan topik. IoT Platform mengembalikan pesan respons ke topik setelah properti dikirimkan.

      // Langgani topik menggunakan Paho MQTT. 
      String topicReply = "/sys/" + productKey + "/" + deviceName + "/thing/event/property/post_reply";
      
      mqttClient.MqttMsgPublishReceived += MqttPostProperty_MqttMsgPublishReceived;
      mqttClient.Subscribe(new string[] { topicReply }, new byte[] { MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE });
      ...
      private static void MqttPostProperty_MqttMsgPublishReceived(object sender, uPLibrary.Networking.M2Mqtt.Messages.MqttMsgPublishEventArgs e)
      {
          Console.WriteLine("topik balasan  :" + e.Topic);
          Console.WriteLine("payload balasan:" + e.Message.ToString());
      }

    Untuk informasi tentang metode komunikasi perangkat, server, dan IoT Platform, lihat Ikhtisar Komunikasi antara Perangkat, Platform IoT, dan Server.

  5. Kompilasi proyek.

Kode sampel

Anda dapat menggunakan kode sampel untuk menghubungkan perangkat ke IoT Platform.

  1. Unduh paket demo dan ekstrak paket tersebut ke direktori aiot-csharp-demo.

    Direktori aiot-csharp-demo\paho.mqtt.m2mqtt-master\aiot-csharp-demo berisi program lengkap yang memungkinkan perangkat terhubung ke IoT Platform dan mengirimkan properti.

    File

    Deskripsi

    MqttSign.cs

    File ini berisi kode yang dapat Anda gunakan untuk mendapatkan parameter koneksi MQTT. Saat Anda menjalankan file Program.cs, fungsi MqttSign() dipanggil untuk mendapatkan parameter username, password dan clientId.

    Program.cs

    File ini berisi kode logika yang memungkinkan perangkat terhubung ke IoT Platform dan mengirimkan properti.

  2. Buka Visual Studio Community 2019, klik Open a project or solution, lalu buka file aiot-csharp-demo\paho.mqtt.m2mqtt-master\M2Mqtt.sln.

    Proyek aiot-csharp-demo diimpor ke Visual Studio.

  3. Di file Program.cs, ganti informasi perangkat sampel dengan informasi perangkat Anda.

    • Ganti nilai parameter productKey, deviceName, dan deviceSecret dengan informasi sertifikat perangkat Anda.

      String productKey = "${ProductKey}";
      String deviceName = "${DeviceName}";
      String deviceSecret = "${DeviceSecret}";
    • Ubah titik akhir di String broker = productKey + ".iot-as-mqtt.cn-shanghai.aliyuncs.com";. Untuk informasi lebih lanjut, lihat Langkah 4 di bagian "Hubungkan Perangkat ke IoT Platform" dalam topik ini.

  4. Tentukan file aiot-csharp-demo sebagai item startup, lalu jalankan file tersebut untuk menghubungkan perangkat ke IoT Platform.

    Connect a device to IoT Platform

    Setelah Anda menghubungkan perangkat ke IoT Platform, Anda dapat melihat informasi tentang koneksi, pengiriman data, dan langganan pesan di log lokal.

    ...
    broker: a1X2bEn****.iot-as-mqtt.cn-shanghai.aliyuncs.com Terhubung
    ...
    publikasi: {"id":"1","version":"1.0","params":{"LightSwitch":0}}
    ...
    langganan: /sys/a1X2bEn****/example1/thing/event/property/post_reply
    ...

    Di konsol IoT Platform, Anda dapat melihat status perangkat dan log.

    • Pilih Devices > Devices. Halaman Perangkat menunjukkan bahwa perangkat berada dalam status Online.

    • Pilih Maintenance > Device Log. Lalu, klik tab Cloud run log atau Device local log untuk melihat log. Untuk informasi lebih lanjut, lihat Log IoT Platform dan Log Lokal Perangkat.

Kode kesalahan

Jika perangkat gagal menetapkan koneksi MQTT ke IoT Platform, Anda dapat mendiagnosis masalah berdasarkan kode kesalahan. Untuk informasi lebih lanjut, lihat Pemecahan Masalah.