受けた治療のスタンザ
スマック受信セクションを処理するための柔軟なフレームワークを提供する二つの構造を使用します。
org.jivesoftware.smack.StanzaCollector
- あなたは、新しいクラスのセクションのための待ち時間を同期させることができます。org.jivesoftware.smack.StanzaListener
-非同期通知インターフェースのためにあなたは、祭りを渡します。イベントのプログラミングスタイルのためのフェスティバルのイベントリスナー、および収集部は、結果キューのセクションを持っている、あなたは、ポーリングと動作を停止することができます。あなただけのセクションのリスナーに入るセクションで特定のアクションを実行したいときに便利なセクションコレクタの特定のセグメントを待ちたいときにそのため、便利です。あなたは使用することができますXMPPConnection
例をスタンザのコレクターやリスナーを作成します。
org.jivesoftware.smack.filter.StanzaFilter
インタフェースは、特定のセクションはに渡されるかを決定StanzaCollector
またはStanzaListener
。あなたはできるorg.jivesoftware.smack.filter
パック、多くの定義済みのフィルタを見つけます。
次のコードは、コレクタセクションとセクションのリスナーを登録する方法を示しています。
// Create a stanza filter to listen for new messages from a particular
// user. We use an AndFilter to combine two other filters._
StanzaFilter filter = new AndFilter(StanzaTypeFilter.Message, FromMatchesFilter.create("[email protected]"));
// Assume we've created an XMPPConnection named "connection".
// First, register a stanza collector using the filter we created.
StanzaCollector myCollector = connection.createStanzaCollector(filter);
// Normally, you'd do something with the collector, like wait for new packets.
// Next, create a stanza listener. We use an anonymous inner class for brevity.
StanzaListener myListener = new StanzaListener() {
**public** **void** processStanza(Stanza stanza) {
// Do something with the incoming stanza here._
}
};
// Register the listener._
connection.addAsyncStanzaListener(myListener, filter);
// or for a synchronous stanza listener use
connection.addSyncStanzaListener(myListener, filter);
スタンザ標準フィルタ
スマックセクションでは、フィルタの豊富なセットが含まれている、またはあなたがしてエンコードすることができるStanzaFilter
インターフェースを独自のフィルタを作成します。フィルタ記載のデフォルトセット:
StanzaTypeFilter
- フィルタの特定のクラスタイプのセクション。StanzaIdFilter
- 特定のパケットIDフィルタ部を有します。ThreadFilter
- 特定のメッセージスレッドIDを有するフィルタセクション。ToMatchesFilter
- 特定のアドレスにフィルタ部に送られます。FromMatchesFilter
- 特定のアドレスから送信されたフィルタセクション。StanzaExtensionFilter
- フィルタのセクションの拡張の特定のセクションを有しています。AndFilter
- 2つのフィルタによる論理AND演算を実行します。OrFilter
- 二つのフィルタによって論理和演算を実行します。NotFilter
- フィルタの論理NOT演算を実行します。