Thông thường, bạn sẽ cần chọn một giao thức có đảm bảo chắc chắn về việc máy khách sẽ nhận được bất kỳ gói / tin nhắn nào, theo thứ tự nào và liệu có được phép sao chép hay không.
Đối với một mạng các thiết bị IoT gửi các tin nhắn cỡ nhỏ đến vừa phải cho nhau, sử dụng MQTT với Chất lượng dịch vụ 2 có vẻ phù hợp với trường hợp sử dụng của bạn. Như đã nêu trong liên kết HiveMQ:
QoS cao nhất là 2, nó đảm bảo rằng mỗi tin nhắn chỉ được nhận một lần bởi đối tác. Đây là chất lượng dịch vụ an toàn nhất và cũng chậm nhất. Bảo đảm được cung cấp bởi hai luồng ở đó và ngược lại giữa người gửi và người nhận.
Lưu ý rằng QoS 2 không bảo vệ thứ tự các tin nhắn và, như đã nêu, ngăn chặn các tin nhắn trùng lặp.
Có một chi phí đáng kể trong việc sử dụng MQTT QoS 2 so với QoS 0 tiêu chuẩn (gần giống với tin nhắn cháy và quên; nếu nó không đến được nhà môi giới, thì tin nhắn sẽ không bị phẫn nộ và nó sẽ biến mất vĩnh viễn ) - QoS 2 yêu cầu 4 tin nhắn ( PUBLISH
từ người gửi, PUBREC
từ nhà môi giới, PUBREL
từ khách hàng, PUBCOMP
từ nhà môi giới), do đó thường sẽ mất nhiều thời gian hơn để xử lý, mất nhiều tài nguyên hơn (do đó truyền phát radio lâu hơn và sử dụng nhiều năng lượng hơn trên bất kỳ điểm cuối bị ràng buộc nào).
Một tin nhắn MQTT QoS 2 sẽ liên tục bị gửi lại từ người gửi cho đến khi nhận được xác nhận từ nhà môi giới, vì vậy cuối cùng tin nhắn của bạn sẽ được thông qua, ngay cả khi kết nối của bạn không hoàn hảo.
Giao thức đăng ký xuất bản dựa trên chủ đề có phù hợp với trường hợp sử dụng hay không là tùy thuộc vào bạn để xác định; bài viết Wikipedia có thể giúp bạn có một ý tưởng.