Topik ini menjelaskan interaksi perangkat-cloud yang dioptimalkan dalam MQTT 5.0 yang didukung oleh IoT Platform.
Deskripsi fitur
MQTT 5.0 dirancang untuk meningkatkan interoperabilitas dan transparansi pesan antara perangkat dan server. Dalam MQTT 5.0, interaksi perangkat-cloud berikut dioptimalkan:
Umpan balik pada pembentukan koneksi
Umpan balik pada pembentukan koneksi adalah mekanisme negosiasi antara perangkat dan server. Saat koneksi sedang dibentuk antara perangkat dan server, perangkat mengirimkan parameter koneksi dalam permintaan, dan server mengembalikan paket CONNACK sebagai umpan balik. Paket CONNACK adalah pengakuan koneksi yang mencakup nilai parameter permintaan dan fitur yang tersedia untuk perangkat.
Properti CONNACK | Deskripsi dan rentang nilai | Respon dari IoT Platform |
Retain Available |
| 1 |
Wildcard Subscription Available |
| 1 |
Subscription Identifiers Available |
| 0 |
Shared Subscription Available |
| 1 |
Topic Alias |
| 1 |
Maximum QoS |
| 1 |
Server Keep Alive | Server terus mengirimkan paket denyut jantung atau paket data selama periode keep-alive. Jika tidak, koneksi terputus. Properti ini menentukan periode keep-alive. Nilai valid: 30 hingga 1200. | IoT Platform mengembalikan periode keep-alive yang ditentukan oleh perangkat dalam parameter koneksi. Jika nilai yang diatur oleh perangkat berada di luar rentang nilai, koneksi terputus. |
Session Expiry Interval | Properti ini menentukan periode retensi sesi setelah koneksi terputus. Nilai valid: 0 hingga 0xFFFFFFFF. | IoT Platform mengembalikan periode retensi yang ditentukan oleh perangkat dalam parameter koneksi. Jika perangkat tidak menentukan periode ini, nilai default 0 digunakan. |
Maximum Packet Size | Nilai valid: 0 hingga 0xFFFFFFFF. | IoT Platform selalu mengembalikan 262144, yang menunjukkan 256 KB. |
Topic Alias Maximum | Nilai valid: 0 hingga 0xFFFFFFFF. | IoT Platform selalu mengembalikan 20. |
Paket DISCONNECT yang dikirim oleh server
Dalam MQTT 3.1.1, jika perangkat melanggar aturan, server langsung memutus koneksi perangkat tanpa menjelaskan alasan penutupan koneksi.
Dalam MQTT 5.0, server dapat memutus koneksi ke perangkat dan mengirimkan paket DISCONNECT ke perangkat. Paket DISCONNECT berisi kode alasan dan string alasan yang menjelaskan alasan penutupan koneksi. Paket DISCONNECT menyederhanakan pemecahan masalah.
Peningkatan dalam kode kesalahan
Peningkatan | MQTT 3.1 | MQTT 5.0 |
Peningkatan jumlah | 5 kode kesalahan | 20 kode kesalahan |
String alasan | Tidak didukung | Properti Reason String ditambahkan untuk menentukan penyebab kesalahan rinci untuk debugging dan pemecahan masalah. |
Kode kesalahan untuk lebih banyak jenis paket | Kode kesalahan dikembalikan hanya untuk paket CONNECT. | Kode kesalahan dikembalikan untuk paket CONNECT, UNSUBACK, PUBACK, DISCONNECT, dan lainnya. |
Kode kesalahan
Desimal | Heksadesimal | Nama | Jenis paket |
0 | 0x00 | Berhasil | CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, UNSUBACK, dan AUTH |
128 | 0x80 | Kesalahan tidak ditentukan | CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK, dan DISCONNECT |
129 | 0x81 | Paket tidak valid | CONNACK dan DISCONNECT |
130 | 0x82 | Kesalahan protokol | CONNACK dan DISCONNECT |
132 | 0x84 | Versi protokol tidak didukung | CONNACK |
136 | 0x88 | Server tidak tersedia | CONNACK |
137 | 0x89 | Server sibuk | CONNACK dan DISCONNECT |
138 | 0x8A | Dilarang | CONNACK |
140 | 0x8C | Metode autentikasi tidak valid | CONNACK dan DISCONNECT |
141 | 0x8D | Timeout Keep Alive | DISCONNECT |
144 | 0x90 | Nama topik tidak valid | CONNACK, PUBACK, PUBREC, dan DISCONNECT |
147 | 0x93 | Maksimum penerimaan dilampaui | DISCONNECT |
148 | 0x94 | Alias topik tidak valid | DISCONNECT |
149 | 0x95 | Paket terlalu besar | CONNACK dan DISCONNECT |
150 | 0x96 | Laju pesan terlalu tinggi | DISCONNECT |
151 | 0x97 | Kuota dilampaui | CONNACK, PUBACK, PUBREC, SUBACK, dan DISCONNECT |
152 | 0x98 | Tindakan administratif | DISCONNECT |
153 | 0x99 | Format muatan tidak valid | PUBACK, PUBREC, dan DISCONNECT |
154 | 0x9A | Retain tidak didukung | CONNACK dan DISCONNECT |
155 | 0x9B | QoS tidak didukung | CONNACK dan DISCONNECT |
156 | 0x9C | Gunakan server lain | CONNACK dan DISCONNECT |
157 | 0x9D | Server dipindahkan | CONNACK dan DISCONNECT |
158 | 0x9E | Langganan bersama tidak didukung | SUBACK dan DISCONNECT |
159 | 0x9F | Laju koneksi dilampaui | CONNACK dan DISCONNECT |