MQTT hoạt động như thế nào?
Tổng quan về cách thức hoạt động của MQTT được đưa ra bên dưới.
- Client MQTT thiết lập kết nối với broker MQTT.
- Sau khi kết nối, client có thể publish tin nhắn, subscribe tin nhắn cụ thể hoặc thực hiện cả hai.
- Khi broker MQTT nhận được một tin nhắn, nó sẽ chuyển tiếp nó đến những subscriber quan tâm.
Hãy chia nhỏ các chi tiết để hiểu thêm.
Topic MQTT
Thuật ngữ ‘topic’ dùng để chỉ các từ khóa mà broker MQTT sử dụng để lọc tin nhắn cho client MQTT. Các topic được tổ chức theo thứ bậc, tương tự như thư mục tệp hoặc thư mục. Ví dụ, hãy xem xét một hệ thống nhà thông minh hoạt động trong một ngôi nhà nhiều tầng có các thiết bị thông minh khác nhau ở mỗi tầng. Trong trường hợp đó, broker MQTT có thể tổ chức các topic như:
`
ourhome/groundfloor/livingroom/light
ourhome/firstfloor/kitchen/temperature
`
Publish
MQTT clients publish gói tin chứa topic và dữ liệu ở định dạng byte. Client xác định định dạng dữ liệu, chẳng hạn như dữ liệu văn bản, dữ liệu nhị phân, tệp XML hoặc JSON. Ví dụ: một chiếc đèn trong hệ thống nhà thông minh có thể publish thông báo về topic livingroom/light
.
Subscribe
Client MQTT gửi tin nhắn SUBSCRIBE cho broker MQTT để nhận tin nhắn về các topic quan tâm. Thông báo này chứa một mã định danh duy nhất và một danh sách đăng ký. Ví dụ: ứng dụng nhà thông minh trên điện thoại của bạn muốn hiển thị số lượng đèn đang bật trong nhà bạn. Nó sẽ subscribe topic light
và tăng bộ đếm cho tất cả các tin nhắn.
Một vài vấn đề khác
MQTT trên WSS là gì?
MQTT qua WebSockets (WSS) là một triển khai MQTT để nhận dữ liệu trực tiếp vào trình duyệt web. Giao thức MQTT xác định ứng dụng khách JavaScript để cung cấp hỗ trợ WSS cho trình duyệt. Trong trường hợp này, giao thức hoạt động như bình thường nhưng nó thêm các tiêu đề bổ sung vào thông báo MQTT để hỗ trợ giao thức WSS. Bạn có thể coi nó như tải trọng tin nhắn MQTT được gói trong một phong bì WSS.
MQTT có an toàn không?
Giao tiếp MQTT sử dụng giao thức SSL để bảo vệ dữ liệu nhạy cảm được truyền bởi các thiết bị IoT. Bạn có thể triển khai nhận dạng, xác thực và ủy quyền giữa khách hàng và nhà môi giới bằng chứng chỉ SSL và/hoặc mật khẩu. Nhà môi giới MQTT thường xác thực khách hàng bằng mật khẩu của họ cũng như số nhận dạng khách hàng duy nhất mà nó phân bổ cho từng khách hàng. Trong hầu hết các triển khai, máy khách xác thực máy chủ bằng chứng chỉ hoặc tra cứu DNS. Bạn cũng có thể triển khai các giao thức mã hóa với MQTT.
MQTT có RESTful không?
MQTT không phải là RESTful. Truyền trạng thái đại diện (REST) là một cách tiếp cận kiến trúc đối với giao tiếp mạng sử dụng mẫu giao tiếp yêu cầu-phản hồi giữa người gửi và người nhận tin nhắn. Ngược lại, MQTT sử dụng mô hình giao tiếp xuất bản/đăng ký trong lớp ứng dụng và yêu cầu kết nối TCP thường trực để truyền thông báo theo cách đẩy. Tuy nhiên, MQTT phiên bản 5 bổ sung một phương thức yêu cầu/phản hồi mới để hành động theo cách tương tự như REST, trong đó nhà xuất bản có thể đính kèm một chủ đề phản hồi đặc biệt mà người nhận xử lý và tạo phản hồi thích hợp.