Openfire 離線消息的處理機制


OfflineMessagetrategy:

離線消息的處理策略類。

1.靜態成員變量type 用來設置消息的處理類型,主要包括:

         打回       

         丟棄

         存儲,在超限情況下打回

         存儲,在超限情況下丟棄

2.靜態成員變量quota 標識最大所能存儲的message總和大小默認為100k。

3.支持OfflineMessageListener事件監聽器,只要實現此接口並加入到監聽器列表,則在消息被打回或存儲時可撲捉到相應消息。       

4.所有離線消息都存儲在表ofoffline中。

OfflineMessageStore:

用來具體處理離線消息的類。

1.用addMessage(Message message)來存儲一條消息。

2.用getMessages(String username,boolean delete)來提供指定用戶的所有離線消息。delete參數則是指定提取后是否要從數據庫中刪除。

3.用deleteMessages(String username)來刪除某個用戶所有的離線消息。

4.此類實現了UserEventListener接口,當用戶被刪除時掉用deleteMessage()來刪除此用戶所有離線消息。

離線消息的存儲時機:

1.routingFailed()在進行消息路由失敗的情況下。比如目的用戶不在線。

2.由ConnectonManager轉發過來的消息找不到路由或無法處理。

離線消息的提取時機:

1.用戶狀態變為可用,session被初始化時。比如用戶上線。

2.用戶發送了特定的IQ消息,要求遞送自己發送的離線消息。

3.用戶的session權限級別發生了變化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM