IoT Platform mendukung Message Queuing Telemetry Transport (MQTT) melalui koneksi WebSocket. Anda dapat menggunakan protokol WebSocket untuk membuat koneksi, lalu menggunakan protokol MQTT untuk berkomunikasi melalui koneksi WebSocket tersebut.
Informasi Latar Belakang
WebSocket memberikan manfaat sebagai berikut:- Mengizinkan aplikasi berbasis browser untuk membuat koneksi persisten ke server.
- Menggunakan port 443, yang memungkinkan pesan melewati sebagian besar firewall.
Prosedur
- Persiapkan Sertifikat.
Anda dapat menggunakan WebSocket untuk koneksi tanpa enkripsi atau WebSocket Secure untuk koneksi terenkripsi. Transport Layer Security (TLS) digunakan untuk mengenkripsi koneksi WebSocket Secure. Koneksi WebSocket Secure memerlukan sertifikat root, yang juga diperlukan untuk koneksi TLS.
- Kembangkan Klien.
IoT Platform menyediakan MQTT SDK for Java. Anda dapat menggunakan SDK ini untuk mengembangkan klien Anda, tetapi Anda perlu mengganti URL dalam SDK dengan URL yang digunakan oleh WebSocket. Untuk informasi tentang cara mendapatkan MQTT SDK untuk bahasa pemrograman lainnya atau cara menggunakan MQTT SDK kustom, lihat libraries. Sebelum menggunakan MQTT SDK, baca petunjuk dan pastikan bahwa WebSocket didukung.
- Buat Koneksi ke IoT Platform.
Dibandingkan dengan koneksi MQTT melalui TCP, koneksi MQTT melalui WebSocket memiliki protokol dan nomor port yang berbeda dalam URL. Koneksi MQTT melalui WebSocket memiliki parameter yang sama dengan koneksi MQTT melalui TCP, kecuali parameter securemode. Jika Anda menggunakan WebSocket Secure, atur parameter ini ke
2. Jika Anda menggunakan WebSocket, atur parameter ini ke3.- Format Titik Akhir:
wss://${MQTT endpoint}atauws://${MQTT endpoint}. Untuk informasi tentang titik akhir MQTT dari instance publik dan instance Enterprise Edition, lihat Kelola titik akhir sebuah instance. - Nomor Port: 443.
- Header Variabel: Keep Alive.
Anda harus menyertakan parameter Keep Alive dalam pesan CONNECT. Nilai valid untuk periode keep-alive adalah 30 hingga 1.200 detik. Jika nilai parameter Keep Alive tidak berada dalam rentang ini, IoT Platform akan menolak koneksi. Kami merekomendasikan Anda menentukan nilai lebih besar dari 300 detik. Jika koneksi jaringan tidak stabil, kami sarankan Anda menetapkan periode keep-alive menjadi nilai yang besar.
Dalam satu periode keep-alive, perangkat harus mengirim setidaknya satu pesan. Pesan tersebut bisa berupa permintaan ping.
Jika IoT Platform tidak menerima pesan dalam periode keep-alive, perangkat akan terputus dari IoT Platform. Anda harus menyambungkan ulang perangkat ke server.
mqttClientId: clientId+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|" mqttUsername: deviceName+"&"+productKey mqttPassword: sign_hmac(deviceSecret,content)Deskripsi parameter adalah sebagai berikut:mqttClientId: Parameter tambahan ditempatkan di antara tanda vertikal (
| |).clientId: ID klien. Anda dapat menentukan ID klien sesuai kebutuhan bisnis Anda. ID klien tidak boleh melebihi 64 karakter. Kami merekomendasikan Anda menggunakan alamat MAC atau nomor seri (SN) perangkat sebagai ID klien.
- securemode: mode aman. Nilai valid: 2 (WebSocket Secure) dan 3 (WebSocket).
signmethod: algoritma tanda tangan. Nilai valid: hmacmd5, hmacsha1, dan hmacsha256.
timestamp: waktu saat ini, dalam milidetik. Parameter ini opsional.
mqttPassword: kata sandi. Metode perhitungan: Urutkan parameter yang dikirimkan ke server secara alfabetis dan enkripsi parameter berdasarkan algoritma tanda tangan yang ditentukan. Untuk informasi lebih lanjut tentang contoh perhitungan tanda tangan, lihat Contoh pembuatan tanda tangan untuk koneksi MQTT.
content: string gabungan yang terdiri dari parameter yang dikirimkan ke server. Parameter ini mencakup productKey, deviceName, timestamp, dan clientId. Parameter diurutkan secara alfabetis dan digabungkan tanpa pemisah.
PentingproductKey dan deviceName wajib. timestamp dan clientId opsional. Jika Anda mengonfigurasi parameter timestamp atau clientId, nilai parameter tersebut harus sama dengan nilai yang ditentukan untuk parameter mqttClientId.
Kami merekomendasikan Anda menggunakan Link SDK untuk menghubungkan perangkat ke IoT Platform. Untuk informasi tentang cara mengembangkan SDK perangkat kustom untuk koneksi, lihat Contoh pembuatan tanda tangan untuk koneksi MQTT.
- Format Titik Akhir: