Setelah perangkat terhubung ke IoT Platform, perangkat akan mengirimkan data ke platform tersebut. Data ini kemudian dapat diteruskan ke server Anda menggunakan Advanced Message Queuing Protocol (AMQP). Topik ini menjelaskan cara mengonfigurasi langganan sisi server AMQP sehingga server Anda dapat menerima data dari lampu jalan melalui klien AMQP.
Prasyarat
Perangkat telah terhubung ke IoT Platform dan data telah dikirimkan. Untuk informasi lebih lanjut, lihat Menghubungkan Perangkat ke IoT Platform dan Mengirimkan Data.
Menyiapkan Lingkungan Pengembangan
Dalam contoh ini, Java digunakan untuk mengembangkan klien Advanced Message Queuing Protocol (AMQP) sampel. Kami merekomendasikan penggunaan Apache Qpid JMS client. Untuk mengunduh klien dan melihat petunjuknya, lihat Qpid JMS 0.57.0.
Komponen berikut digunakan dalam lingkungan pengembangan:
Sistem Operasi: Windows 10 (64-bit)
Java Development Kit (JDK): JDK 8
Integrated development environment (IDE): IntelliJ IDEA Community Edition
Mengonfigurasi Langganan Sisi Server AMQP
Pada tab Overview di Konsol IoT Platform, klik IoT_Test_Environment.
Konfigurasikan grup konsumen untuk mengonsumsi pesan. Server Anda dapat memperoleh pesan dengan mendengarkan grup konsumen.
Di panel navigasi sisi kiri, pilih . Di halaman Langganan Sisi Server, klik Consumer Groups.
Di tab Grup Konsumen, klik Create Consumer Group.
Di kotak dialog Create Consumer Group, atur parameter Nama Grup Konsumen menjadi Receive_Thermostat_Data dan klik OK.
Setelah grup konsumen dibuat, halaman Consumer Group Details akan muncul. Anda dapat melihat consumer group ID di halaman tersebut. Salin dan simpan consumer group ID, karena diperlukan saat menghubungkan klien AMQP ke IoT Platform.

Konfigurasikan langganan sisi server untuk produk tempat perangkat termostat milik. Ini memungkinkan server Anda berlangganan berbagai jenis pesan dari produk tersebut.
Di panel navigasi sisi kiri, pilih .
Di tab Subscriptions pada halaman Server-side Subscription, klik Create Subscription.
Di kotak dialog Create Subscription, konfigurasikan parameter dan klik OK. Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Produk
Pilih Home_Thermostat.
Jenis Langganan
Pilih AMQP.
Grup Konsumen
Pilih grup konsumen Receive_Thermostat_Data yang Anda buat pada langkah sebelumnya.
Tipe Pesan
Pilih Notifikasi Upstream Perangkat dan Kirim Data TSL Historis. Untuk informasi lebih lanjut tentang tipe pesan, lihat Konfigurasikan Langganan.
Anda dapat menggunakan fitur penerusan data untuk mengirimkan data ke grup konsumen AMQP dan menggunakan klien AMQP untuk menerima pesan. Sebagai contoh, gunakan aturan Thermostat_Data_Forwarding untuk meneruskan data TSL yang dikirimkan ke grup konsumen Receive_Thermostat_Data. Untuk informasi lebih lanjut, lihat Teruskan Data ke Grup Konsumen AMQP.
Menghubungkan Klien AMQP ke IoT Platform
Buka IntelliJ IDEA dan impor proyek sampel
amqp-demodi dalam paket demo.Di file
pom.xml, dependensi Maven ditambahkan untuk mengunduh klien Qpid JMS.Di file AmqpClient.java yang disimpan di direktori src/main/java/com.aliyun.iotx.demo, konfigurasikan parameter yang diperlukan untuk menghubungkan klien JMS ke IoT Platform. Tabel berikut menjelaskan parameter tersebut.
private static String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); private static String accessSecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); private static String consumerGroupId = "1yRO*****************"; // iotInstanceId: ID instans. Jika Anda menggunakan instans publik yang diaktifkan sebelum 30 Juli 2021, tentukan string kosong untuk parameter ini. private static String iotInstanceId = "iot-cn-******"; // Nilai parameter clientId ditampilkan di Konsol IoT Platform sebagai ID klien di halaman status grup konsumen untuk langganan layanan. // Kami merekomendasikan Anda menggunakan pengenal unik, seperti UUID, alamat MAC, atau alamat IP sebagai nilai parameter clientId. Ini memungkinkan Anda mengidentifikasi klien. private static String clientId = "test_IoT"; //${YourHost} menentukan titik akhir. Untuk informasi lebih lanjut tentang titik akhir, lihat topik "Menghubungkan Klien AMQP ke IoT Platform". private static String host = "iot-cn-******.amqp.iothub.aliyuncs.com"; // Jumlah koneksi yang ingin Anda buat oleh proses. // Permintaan per detik (QPS) konsumsi dari satu koneksi dibatasi. Anda dapat menentukan hingga 64 koneksi. Untuk informasi lebih lanjut, lihat topik "Batasan". // Jumlah koneksi dan QPS konsumsi yang sesuai relevan dengan skema rebalance. Kami merekomendasikan Anda menambah jumlah koneksi satu per satu setiap kali QPS konsumsi meningkat sebesar 500. private static int connectionCount = 4;Parameter
Deskripsi
accessKey
Masuk ke Konsol IoT Platform, arahkan penunjuk ke foto profil, lalu klik AccessKey Management untuk mendapatkan ID AccessKey dan Rahasia AccessKey.
PentingDalam contoh ini, variabel lingkungan dikonfigurasi untuk mengelola pasangan AccessKey. Ini membantu mencegah risiko keamanan yang disebabkan oleh hard coding pasangan AccessKey ke dalam kode bisnis Anda.
Anda harus menambahkan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET ke sistem operasi lokal Anda dan menentukan ID AccessKey dan Rahasia AccessKey.
accessSecret
consumerGroupId
ID dari grup konsumen Receive_Thermostat_Data. Untuk informasi lebih lanjut, lihat Langkah 2 di bagian Konfigurasikan Langganan Sisi Server AMQP.
iotInstanceId
ID dari instans IoT_Test_Environment. Anda dapat melihat ID instans di tab Overview di Konsol IoT Platform.
clientId
ID klien. Anda harus menentukan ID kustom. ID harus memiliki panjang 1 hingga 64 karakter. Kami merekomendasikan Anda menggunakan pengenal unik sebagai ID klien, seperti UUID, alamat MAC, atau alamat IP server tempat klien berjalan.
Setelah klien AMQP terhubung ke IoT Platform dan dimulai, lakukan langkah-langkah berikut untuk melihat detail klien: Masuk ke Konsol IoT Platform dan klik kartu instans yang ingin Anda kelola. Di panel navigasi sisi kiri, pilih . Pada tab Consumer Groups, temukan grup konsumen yang ingin Anda kelola dan klik View di kolom Aksi. ID setiap klien ditampilkan di tab Consumer Group Status. Anda dapat menggunakan ID klien untuk mengidentifikasi klien dengan mudah.
host
Titik akhir AMQP yang disimpan setelah Anda membeli instans. Untuk informasi lebih lanjut, lihat Beli Instans Edisi Enterprise.
Di halaman Instance Details dari instans IoT_Test_Environment di Konsol IoT Platform, Anda dapat mengklik View Development Configurations dan klik AMQP untuk melihat informasi AMQP.
connectionCount
Jumlah koneksi yang diaktifkan pada klien AMQP. Nilai maksimum: 128. Parameter ini digunakan untuk penskalaan horizontal dalam skenario pendorongan pesan waktu nyata.
Di halaman Consumer Group Details, setiap klien yang terhubung ditampilkan sebagai
${clientId}+"-"+ Number. Angka minimum adalah 0.Jika output yang mirip dengan informasi berikut muncul setelah file kode sampel AmqpClient.java dijalankan, klien AMQP terhubung ke IoT Platform dan dapat menerima pesan.
CatatanDalam contoh ini, potongan kode
Thread.sleep(60 * 1000);ditambahkan untuk menghentikan program setelah program mulai dan berjalan selama 1 menit. Anda dapat menentukan waktu berjalan sesuai kebutuhan bisnis Anda.
Parameter respons
Parameter
Contoh
Deskripsi
topic
/***********/******/thing/event/property/post
Topik yang digunakan untuk mengirimkan properti perangkat.
messageId
1324198300680719360
ID pesan.
content
{"temperature":23,"humidity":21,"time":1604548451951}
Konten pesan.
Setelah Anda menjalankan kode, Anda dapat melihat status grup konsumen di langganan sisi server.
Untuk informasi lebih lanjut, lihat Kelola Grup Konsumen.

Lihat Log
Setelah semua pengaturan dikonfigurasi, masuk ke Konsol IoT Platform. Di panel navigasi sisi kiri, pilih . Pilih Home_Thermostat dari daftar produk. Anda dapat melihat log di tab Log Jalankan Cloud.
