IoT Platform memungkinkan Anda mengirim pesan perangkat ke Simple Message Queue (SMQ, sebelumnya MNS). Aplikasi cloud dapat menerima pesan perangkat dengan mendengarkan antrian SMQ. Topik ini menjelaskan cara mengonfigurasi langganan sisi server SMQ.
Prasyarat
Jika menggunakan pengguna RAM, pastikan pengguna tersebut memiliki izin AliyunIOTAccessingSMQRole.
Prosedur
Di konsol IoT Platform, konfigurasikan langganan sisi server SMQ untuk sebuah produk agar IoT Platform secara otomatis meneruskan pesan ke SMQ.
Masuk ke konsol IoT Platform.
Di halaman Overview, klik All environment. Pada tab All environment, temukan instans yang ingin dikelola dan klik ID atau nama instans tersebut.
Di panel navigasi di sebelah kiri, pilih .
Pada tab Langganan di halaman Server-side Subscription, klik Create Subscription.
Di kotak dialog Buat Langganan, konfigurasikan parameter yang diperlukan dan klik OK. Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Produk
Pilih produk tempat perangkat-perangkat tersebut termasuk. Pesan-pesan yang dikirimkan oleh perangkat akan didorong ke konsumen.
Tipe Langganan
Pilih SMQ.
Tipe Pesan
Pilih tipe-tipe pesan. Anda dapat berlangganan tipe-tipe pesan perangkat berikut:
PentingJika Anda menggunakan produk-produk dan perangkat gateway Message Queuing Telemetry Transport MQTT atau JT/T 808, IoT Platform hanya mendorong pesan Device Upstream Notification, Device Status Change Notification, dan Device Changes Throughout Lifecycle ke produk-produk dan perangkat tersebut.
Device Upstream Notification: pesan-pesan dalam topik-topik yang parameter Allowed Operations-nya disetel ke Publish.
Pesan-pesan tersebut mencakup data kustom dan data Thing Specification Language (TSL) yang dikirimkan oleh perangkat. Data TSL hulu mencakup data properti, data acara, respons terhadap permintaan pengaturan properti, dan respons terhadap panggilan layanan. Data TSL yang didorong ke server pengguna diproses oleh IoT Platform. Untuk informasi lebih lanjut, lihat Format data.
Sebagai contoh, kategori-kategori topik berikut didefinisikan untuk sebuah produk:
/${productKey}/${deviceName}/user/get. Parameter Operasi yang Diizinkan untuk kategori topik ini disetel ke Berlangganan./${productKey}/${deviceName}/user/update. Parameter Operasi yang Diizinkan untuk kategori topik ini disetel ke Publikasikan./${productKey}/${deviceName}/thing/event/property/postParameter Operasi yang Diizinkan untuk kategori topik ini disetel ke Publikasikan.
Fitur langganan sisi server mendorong pesan-pesan dari kategori-kategori topik berikut:
/${productKey}/${deviceName}/user/updatedan/${productKey}/${deviceName}/thing/event/property/post.Device Status Change Notification: notifikasi-notifikasi yang dikirimkan oleh perangkat ketika perangkat tersebut online atau offline.
Gateway's sub-devices discovery report: data sub-perangkat yang dikirimkan oleh gateway ketika gateway mendeteksi sub-perangkat baru. Gateway harus memiliki aplikasi-aplikasi yang dapat digunakan untuk mendeteksi sub-perangkat. Tipe pesan ini spesifik untuk gateway.
Device Topological Relation Changes: notifikasi-notifikasi yang dikirimkan oleh gateway ketika hubungan topologi antara sub-perangkat dan gateway dibuat atau dihapus. Tipe pesan ini spesifik untuk gateway.
Device Changes Throughout Lifecycle: notifikasi-notifikasi yang dikirimkan oleh perangkat ketika perangkat tersebut dibuat, dihapus, diaktifkan, atau dinonaktifkan.
TSL Historical Data Reporting: properti historis dan acara-acara yang dikirimkan oleh perangkat.
OTA Update Status Notification: notifikasi-notifikasi yang dikirimkan perangkat selama verifikasi paket pembaruan dan pembaruan massal. Notifikasi didorong tanpa memandang apakah pembaruan perangkat berhasil atau gagal.
Di kotak dialog yang muncul, klik OK.
IoT Platform secara otomatis membuat antrian pesan SMQ dalam format aliyun-iot-${productKey}. Jika ingin mengonfigurasi pendengar antrian, tentukan antrian pesan tersebut.
Anda akan dikenakan biaya untuk sumber daya SMQ. Untuk informasi lebih lanjut mengenai metode penagihan SMQ, lihat Ikhtisar Penagihan.
CatatanJika Anda menghapus langganan sisi server SMQ, antrian SMQ terkait akan dihapus secara otomatis.
Konfigurasikan klien SMQ dan dengarkan antrian SMQ untuk menerima pesan perangkat.
Dalam contoh ini, SMQ SDK for Java digunakan untuk mendengarkan antrian SMQ.
Untuk informasi tentang cara mengunduh SDK, lihat Catatan Rilis SDK for Java.
Untuk menginstal SMQ SDK for Java, tambahkan dependensi berikut ke file pom.xml:
<dependency> <groupId>com.aliyun.mns</groupId> <artifactId>aliyun-sdk-mns</artifactId> <version>1.1.8</version> <classifier>jar-with-dependencies</classifier> </dependency>Konfigurasikan parameter berikut saat mengonfigurasi SDK:
CloudAccount account = new CloudAccount( $AccessKeyId, $AccessKeySecret, $AccountEndpoint);Ganti $AccessKeyId dan $AccessKeySecret dengan ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud Anda. Parameter ini diperlukan saat memanggil operasi API. Untuk membuat atau melihat pasangan AccessKey, masuk ke konsol IoT Platform, arahkan pointer ke foto profil Anda, lalu klik AccessKey Management.
Ganti $AccountEndpoint dengan titik akhir SMQ. Di konsol MNS, klik Get Endpoint.
Tentukan logika untuk menerima pesan perangkat.
MNSClient client = account.getMNSClient(); CloudQueue queue = client.getQueueRef("aliyun-iot-a1wmrZPO8o9"); // Tentukan nama antrian yang dibuat secara otomatis. while (true) { // Ambil pesan. Message popMsg = queue.popMessage(10); // Batas waktu permintaan polling panjang adalah 10 detik. if (popMsg != null) { System.out.println("PopMessage Body: "+ popMsg.getMessageBodyAsRawString()); // Dapatkan pesan mentah. queue.deleteMessage(popMsg.getReceiptHandle()); // Hapus pesan dari antrian. } else { System.out.println("Melanjutkan"); } }Jalankan program untuk mendengarkan antrian SMQ.
Mulai perangkat dan kirimkan pesan dari perangkat ke IoT Platform.
Untuk informasi tentang cara mengonfigurasi Link SDK, lihat dokumentasi Link SDK.
Periksa apakah aplikasi cloud dapat menerima pesan. Jika pesan diterima, isi pesan tersebut mirip dengan informasi berikut.
{ "messageid":" ", "messagetype":"upload", "topic":"/al12345****/device123/user/update", "payload":" ", "timestamp": " " }Parameter
Deskripsi
messageid
ID pesan. ID pesan dibuat oleh IoT Platform.
messagetype
Tipe pesan dari topik. Nilai-nilai valid:
upload: data perangkat yang dikirimkan
status: perubahan status perangkat
topo_listfound: deteksi sub-perangkat oleh gateway
topo_lifecycle: perubahan topologi perangkat
device_lifecycle: perubahan siklus hidup perangkat
thing_history: data TSL historis
ota_event: status pembaruan over-the-air (OTA)
topic
Topik IoT Platform dari mana pesan diteruskan.
payload
Payload pesan yang dikodekan dalam base64.
Untuk informasi lebih lanjut tentang format data, lihat Format data.
timestamp
Timestamp. Ini adalah jumlah detik yang telah berlalu sejak 00:00:00 Kamis, 1 Januari 1970.