を使用してメッセージを作成し、ユーザーに配信する OpenFire 用のプラグインがあります。
XMPPServer.getInstance().getMessageRouter().route(message)
私が知りたいのは、ユーザーがオンラインでない場合にそのメッセージがどうなるかです。
私の目標は、ユーザーがオンラインの場合にのみメッセージを配信し、それ以外の場合は失敗するか、ビットバケットにルーティングすることです。
それはすべてOpenfire構成にかかっています。Openfire 管理コンソールで、[サーバー] -> [サーバー設定] -> [オフライン メッセージ] に移動します。ストア、バウンス、ドロップのオプションがあります。
他のメッセージの配信に影響を与えずにこれらのメッセージをオフラインにしないようにする場合は、type='headline' を使用します。見出しはあまり明確ではありませんが、RFC 3921bis セクション 5.2.2には次のように記載されています。
ヘッドライン -- メッセージは、アラート、通知、または応答が期待されないその他の情報 (ニュースのヘッドライン、スポーツの最新情報、ほぼリアルタイムの市場データ、シンジケート コンテンツなど) を提供します。メッセージへの返信は想定されていないため、通常、受信クライアントは、メッセージをスタンドアロン メッセージ、チャット メッセージ、またはグループ チャット メッセージと適切に区別するインターフェースで「見出し」タイプのメッセージを提示します (たとえば、受信者に返信する能力)。受信サーバーは、受信者の利用可能なすべてのリソースにメッセージを配信する必要があります。
今日のほとんどのサーバーは、オフラインのユーザーに静かに見出しをドロップし、ユーザーがオンラインの場合は最も優先度の高いリソースに配信します。