วันอังคารที่ 5 มิถุนายน พ.ศ. 2561

MQTT QOS

QOS0
  ส่งข้อมูลไปครั้งเดียว ไม่มีการเช็ค PUBACK พอส่งแล้วก็นำข้อมูลออกจาก message queue

QSO1
  การันตีว่าส่งอย่างน้อย 1 ครั้ง คือจะมีการเช็ค PUBACK คือตอนแรกทำการส่งข้อมูลไป จากนั้นรอจนกว่าจะรับ PUBACK ถ้ารอจนครบเวลาแล้วก็จะส่งข้อมูลไปใหม่ซ้ำๆ  ถ้าได้รับ PUBACK แล้วถึงจะหยุดส่งข้อมูลนั้นแล้วนำข้อมูลออกจาก message queue

QOS2
  การันตีว่าส่งข้อมูลครั้งเดียว  แบ่งเป็น step ดังนี้
  - ส่งข้อมูลไปแล้วรอ PUBRAC ถ้ายังไม่ได้ก็วนซ้ำส่งข้อมูลไปโดยตั้งค่า DUP flag ไปด้วยเพื่อให้รู้ว่าเป็นข้อมูลที่ถูกส่งซ้ำ
  - ถ้าได้ PUBREC แล้วก็จะทำการส่ง PUBREL  ทางฝั่งผู้รับจะรอ PUBREL จากผู้ส่ง ถ้ายังไม่มาสักทีก็จะส่ง PUBREC ให้ผู้ส่งไปเรื่อยๆ
 - เมื่อผู้รับได้รับ PUBRAL ข้อมูลก็จะถูกส่งไปให้ Subscriber ได้
 - ผู้รับทำการส่ง PUBCOM กลับยังผู้ส่ง  ถ้าผู้ส่งยังไม่ได้รับสักทีจะวนซ้ำส่ง PUBREL ทันทีที่ผู้ส่งได้รับ PUBCOM ก็จะทำการลบข้อมูลออกจาก message queue

QOS publish กับ QOS subscribe จะมี QOS overall เท่ากับ QOS ของฝั่งที่น้อยกว่า

ไม่มีความคิดเห็น:

แสดงความคิดเห็น