|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.co.fujitsu.reffi.server.messaging.AbstractMessageSender
jp.co.fujitsu.reffi.server.flex.producer.ProxyMessageProducer
public abstract class ProxyMessageProducer
[概 要]
Flex用基底プロデューサクラス。[詳 細]
Flexでのメッセージ送信基底クラスです。以下が簡単な実装サンプルとなります。
public class DemoMessageProducer extends ProxyMessageProducer {
private static final String DESTINATION = "demoDestination";
protected void processSend() {
// クライアントへ送信するデータの生成
ArrayList<String> results = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
results.add("results-" + String.valueOf(i));
}
send(DESTINATION, results);
}
}
本サンプルでは、あらかじめmessaging-config.xmlに登録されている宛先「demoDestination」
に対してメッセージ受信を開始しているクライアントへ生成した文字列の配列を送信しています。
send(String, Serializable)を呼び出すことで生成した
メッセージの送信を行います。
送信するメッセージはSerializableを実装したクラスである必要があります。
SenderManagerを利用することで
定期的なメッセージ送信をすることが可能となります。
以下はjp.co.fujitsu.reffi.server.model.AbstractModelを継承したモデル
を実装し、その中でメッセージ送信を1分毎に定期的に実行するサンプルとなります。
import java.util.ArrayList;
import jp.co.fujitsu.reffi.server.flex.producer.ProxyMessageProducer;
import jp.co.fujitsu.reffi.server.messaging.SenderManager;
import jp.co.fujitsu.reffi.server.model.AbstractModel;
public class DemoModel extends AbstractModel {
private static final String PRODUCER_NAME = "DemoProducer";
private static final String DESTINATION = "demoDestination";
private static final int INTERVAL = 60;
protected void mainProcess() throws Exception {
String isCancel = getRequestParameter("isCancel", String.class);
if ("true".equals(isCancel)) {
SenderManager.instance.cancelMessageSender(PRODUCER_NAME);
} else {
SenderManager.instance.addMessageSender(PRODUCER_NAME, new DemoMessageProducer(), INTERVAL * 1000);
}
}
class DemoMessageProducer extends ProxyMessageProducer {
protected void processSend() {
ArrayList<String> results = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
results.add("results-" + String.valueOf(i));
}
send(DESTINATION, results);
}
}
}
サンプルでは、クライアントからのパラメータ「isCancel」に「true」の文字列が設定されている場合、
メッセージ送信を停止します。
[備 考]
本クラスは現在検証中のため、試験的な提供となります。
| コンストラクタの概要 | |
|---|---|
ProxyMessageProducer()
|
|
| メソッドの概要 | |
|---|---|
MessageClient |
getMessageClient()
[概 要] 送信先クライアント情報取得 [詳 細] 送信する特定のクライアント情報を取得します。 |
String |
getServiceID()
[概 要] メッセージサービスID取得 [詳 細] メッセージサービスのIDを取得します。 |
protected void |
send(String destination,
Serializable object)
[概 要] メッセージ発行 [詳 細] メッセージの発行をします。 |
void |
setMessageClient(MessageClient messageClient)
[概 要] 送信先クライアント情報設定 [詳 細] 送信する特定のクライアント情報を設定します。 |
void |
setServiceID(String serviceID)
[概 要] メッセージサービスID設定 [詳 細] 任意のメッセージサービスIDを設定します。 |
| クラス jp.co.fujitsu.reffi.server.messaging.AbstractMessageSender から継承されたメソッド |
|---|
handleFinalize, handleInitialize, processSend, runSender, trap |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public ProxyMessageProducer()
| メソッドの詳細 |
|---|
public String getServiceID()
[概 要]
メッセージサービスID取得[詳 細]
メッセージサービスのIDを取得します。[備 考]
デフォルトではDEFAULT_SERVICE_IDが設定されています。
public void setServiceID(String serviceID)
[概 要]
メッセージサービスID設定[詳 細]
任意のメッセージサービスIDを設定します。[備 考]
デフォルトではDEFAULT_SERVICE_IDが設定されているため、
必要がない場合は設定しないでください。
serviceID - 任意のメッセージサービスIDpublic MessageClient getMessageClient()
[概 要]
送信先クライアント情報取得[詳 細]
送信する特定のクライアント情報を取得します。[備 考]
クライアント情報が設定されていない場合は接続クライアント全てに送信されます。
public void setMessageClient(MessageClient messageClient)
[概 要]
送信先クライアント情報設定[詳 細]
送信する特定のクライアント情報を設定します。[備 考]
クライアント情報が設定されていない場合は接続クライアント全てに送信されます。
messageClient - 送信先クライアント情報
protected final void send(String destination,
Serializable object)
[概 要]
メッセージ発行[詳 細]
メッセージの発行をします。[備 考]
destination - 宛先object - 発行するメッセージ
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||