EMP コネクタの詳細
EMP コネクタのコンポーネントを詳しく見てみましょう。
認証
ユーザのログイン情報が login 関数に渡されます。その後、login 関数の戻り値が、メインコネクタクラスに渡されます。
1BayeuxParameters params = login("<username>", "<password>");OAuth 認証の場合は、BayeuxParameters コンストラクタを使用して BayeuxParameters クラスのメソッドを上書きし、トークンと URL を提供します。
1BayeuxParameters params = new BayeuxParameters() {
2
3 @Override
4 public String bearerToken() {
5 return "<token>";
6 }
7
8 @Override
9 public URL host() {
10 try {
11 return new URL("<URL>");
12 } catch (MalformedURLException e) {
13 throw new IllegalArgumentException(
14 String.format("Unable to create url: %s", argv[0]), e);
15 }
16 }
17};イベントのリスン
イベントをリスンするために、コネクタはラムダ式の Java イベントを使用します。このステートメントは、受信した各イベント通知のイベントメッセージを出力します。このステートメントをトピックに登録するステートメントの前に配置します。
1Consumer<Map<String, Object>> consumer = event -> System.out.println(
2 String.format("Received:\n%s", event));トピックへの登録
EmpConnector クラスは、接続と登録を開始するための機能を公開するメインクラスです。このクラスには、接続を作成する関数、トピックに登録する関数、登録をキャンセルする関数、接続を停止する関数が含まれています。
1// Instantiate the EMP connector
2EmpConnector connector = new EmpConnector(params);
3
4// Wait for handshake with Streaming API
5connector.start().get(5, TimeUnit.SECONDS);
6
7// Subscribe to a topic
8// Block and wait for the subscription to succeed for 5 seconds
9TopicSubscription subscription = connector.subscribe("/topic/myTopic",
10 replayFrom, consumer).get(5, TimeUnit.SECONDS);登録を終了するには、次の関数をコールします。
1// Cancel a subscription
2subscription.cancel();
3
4// Stop the connector
5connector.stop();