我已經使用ejabberd開源服務器來實現我的聊天應用程序。它已成功地發送和接收郵件,但有時郵件確認和閱讀確認正在丟失。ejabberd如何將離線聊天保存到假脫機表
如果連接關閉會話節由客戶端發送到ejabberd服務器,那麼進一步的消息肯定存儲在假脫機表中。考慮客戶端網絡存在問題的情況,並且客戶端在沒有向服務器發送關閉會話節的情況下斷開連接。服務器假定客戶端仍處於聯機狀態,並且不將消息存儲到假脫機表中
但是,當客戶端聯機時,所有待處理的消息都會傳送到客戶端(假脫機加上服務器認爲客戶端聯機時的一些消息)。
ejabberd在哪裏存儲離線消息而不是假脫機表?
考慮流意外關閉並且從未恢復(超時發生)的情況。在某個時候發生新的連接之後,緩衝服務器中存儲的數據會發生什麼情況。它是否也被轉移到客戶端,還是我必須實施一些ejabberd模塊來克服這一點。 –
如果流管理/ ping用於消息可靠性,那麼當會話結束時,消息將放置在離線存儲中。 –
什麼應該是流管理恢復的理想超時值?目前我們已經保持了120秒,但有些節在客戶端迷路了。在ejabberd日誌中,它顯示9節(僅舉例)未被客戶確認。 我應該增加到24 * 60 * 60嗎? –