轉載於:https://my.oschina.net/u/236698/blog/395768
場景一:
發送方客戶端正常,接入服務器Down機。
這種場景下,客戶端發送的消息會出現兩種狀態。第一種是,接入服務器已經送入路由服務器中進行轉發,但是還沒有回ACK給客戶端。第二種是,消息尚未進入路由服務器進行轉發。
場景二:
發送方客戶端Down機,接入服務器正常。
這種場景下,客戶端發送的消息也存在兩種狀態。第一種是,接入服務器極影送入路由服務器中進行轉發,同時回覆ACK。
第二種是,該消息直接發生了丟失,接入服務器沒有收到。
場景三:
接收方客戶端不斷的閃連,接入服務器正常。
這種情況下,離線消息和即時消息會出現兩種狀態。第一種是,消息路由給客戶端了,ACK丟失。第二種是,消息尚未路由給客戶端,就發生丟失。
這是最常見的三個場景,也是最容易處理的場景,至於怎麼處理,大家都清楚我就不多廢話了。
場景四:
發送方客戶端不斷的閃連,接入服務器間歇性Down機。
這種情況下,消息存在的狀態就比較複雜了,但是無非是上三種情況的排列組合。