2008-10-29 46 views
0

我有Openfire的一個插件,創建並提供一條消息,使用郵件傳遞時,用戶離線

XMPPServer.getInstance().getMessageRouter().route(message) 

我想知道的是,如果用戶不在線上發生了什麼消息的用戶。

我的目標是隻有當用戶在線時纔會傳遞消息,否則失敗或被路由到位桶。

回答

2

這完全取決於Openfire配置。在Openfire管理控制檯中,轉至服務器 - >服務器設置 - >脫機消息。有商店,反彈和下降的選項。

  • 存儲:當 用戶重新聯機時傳遞消息。
  • 丟棄:丟棄消息。
  • 彈跳:放棄並通知發件人返回消息。
+0

看起來不錯。不要以爲你知道當發件人是一個插件時會發生什麼樣的反彈? – Robin 2008-10-29 19:10:37

1

另一種方法是,如果您只是希望這些消息不會在不影響其他消息傳遞的情況下脫機,則應使用type ='headline'。標題是不是非常良好的規範,但RFC 3921bis Section 5.2.2說:

標題 - 該消息提供警報,通知或其他信息沒有回覆,預計這(如頭條新聞,體育的更新,近實時市場數據和聯合內容)。因爲預期不會對消息進行回覆,所以通常情況下,接收客戶端將在界面中呈現類型爲「標題」的消息,該消息將消息與獨立消息,聊天消息或羣聊消息進行適當區分(例如,通過不向接收者提供回覆能力)。 接收服務器應該將消息傳遞給所有收件人的可用資源。

今天大部分的服務器都只是默默地下降頭條脫機用戶,如果用戶在線提供最高優先級的資源。