Trong MQTT, tin nhắn có QoS 1 hoặc 2 phải được gửi ít nhất một lần (tin nhắn QoS 2 phải được gửi chính xác một lần). Nếu khách hàng không được kết nối, nhà môi giới phải lưu trữ tin nhắn cho đến khi khách hàng sẵn sàng nhận nó.
Các blog của HiveMQ có một điểm thú vị:
Nhưng điều gì xảy ra nếu một khách hàng không trực tuyến trong một thời gian dài? Ràng buộc để lưu trữ tin nhắn thường là giới hạn bộ nhớ của hệ điều hành. Không có cách tiêu chuẩn để làm gì trong kịch bản này. Nó hoàn toàn phụ thuộc vào trường hợp sử dụng. Trong HiveMQ, chúng tôi sẽ cung cấp khả năng thao túng tin nhắn xếp hàng và thanh lọc chúng.
Vì điều này dường như phụ thuộc vào nhà môi giới, Mosquitto xử lý tình huống này như thế nào? Có phải nó chỉ bị sập sau khi hết bộ nhớ hoặc những tin nhắn cũ cuối cùng bị thanh trừng?