Openfire 好友狀態的發送(用戶登錄)


            客戶端在登錄 Openfire 時都會收到自己訂閱的好友狀態,那么這個好友狀態是怎么下發下去的呢?

           用戶在登錄后會發送一個<presence> 來更新自己的狀態,在PresenceRouter 中進行處理。

 這個presence 交由PresenceUpdateHandler 處理,在判斷用戶為注冊用戶后使用RosterManager.getRoster() 來獲取所有已經訂閱的其他用戶。

針對每個用戶判斷關系類型,如果為SUB_FROM,SUB_BOTH 則說明此用戶為訂閱了自己的。

       先向訂閱了自己的用戶廣播狀態更新消息。調用initSesion(),從中取出SUB關糸為SUB_TO 和 SUB_BOTH的,調用PresenceManagerImpl 中的probPresence()  方法來處理每個被訂閱者。probPresence()通過sessionManager獲取每個用戶的在線情況,組裝presence並發送給登錄用戶。




免責聲明!

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



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