シグナリング — Android

OpenTokシグナリングAPIを使用して、OpenTokセッションに接続されているクライアント間でテキストやデータを送信します。

OpenTokシグナリングAPIに関する概念的な情報については、 シグナリングの概要 開発者ガイド

このトピックには以下のセクションが含まれます:

セッション内の特定のクライアントにシグナルを送信する

セッション内の特定のクライアントにシグナルを送信するには、 sendSignal(String type, String data, Connection connection) メソッドを呼び出します:

mSession.sendSignal("chat", "Hello", mConnection1);

について type パラメータとは、クライアントがフィルタリングを行う際に使用できる文字列値のことです。 信号を待ち受ける. 型を設定する必要がない場合は、これを空の文字列に設定してください。

について data parameter は、メッセージとともに送信するデータペイロード(String)です。データのサイズ上限は 8KB です。

について connection パラメータは 接続 シグナルを送信したいセッションに接続されているクライアントに対応するオブジェクト。Connection オブジェクトへの参照は、 onConnectionCreated(Session session, Connection connection) Session に対して実装された Session.ConnectionListener オブジェクトのメソッド。

なお、 REST APIコール セッションに接続しているクライアントではなく、サーバー側からシグナルを送信する場合。この場合、 connection パラメータが null.

セッション内のすべてのクライアントに信号を送信する

セッション内のすべてのクライアントに信号を送信するには、 sendSignal(String type, String data) メソッドを呼び出します:

mSession.sendSignal("chat", "Hello");

について type パラメータとは、クライアントがフィルタリングを行う際に使用できる文字列値のことです。 信号を待ち受ける. 型を設定する必要がない場合は、これを空の文字列に設定してください。

について data parameter は、メッセージとともに送信するデータペイロード(String)です。データのサイズ上限は 8KB です。

セッションでの信号の受信

すべての信号を受信するには、以下の番号にお電話ください。 setSignalListener(Session.SignalListener listener) Session オブジェクトのメソッドを呼び出し、Session.SignalListener インターフェースを実装するオブジェクトを引数として渡します:

 mSession.setSignalListener(this);

について onSignalReceived(Session session, String type, String data, Connection connection) セッションでシグナルを受信すると、SignalListener オブジェクトのメソッドが呼び出されます:

@Override
protected void onSignalReceived(Session session, String type, String data, Connection connection) {
    String myConnectionId = session.getConnection().getConnectionId();
    if (connection != null && connection.getConnectionId().equals(myConnectionId)) {
        // Signal received from another client
    }
}

なお、 REST APIコール セッションに接続しているクライアントではなく、サーバー側からシグナルを送信する場合。この場合、 connection パラメータが null.

自動再接続中に信号が送信されないようにする

クライアントは、予期せず(たとえば、ネットワーク接続が切断された場合など)セッションから切断された場合、自動的に再接続を試みます。デフォルトでは、クライアントがセッションから一時的に切断されている間に送信されたシグナルはすべてキューに入れられ、再接続に成功した時点で(成功した場合に限り)送信されます。 Session.sendSignal(String type, String data, Connection connection, boolean retryAfterReconnect) メソッドで retryAfterReconnect パラメータを false クライアントが切断されている間、信号がキューに蓄積されるのを防ぐためです。詳細については、以下を参照してください。 自動再接続.