シグナリング — Windows

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

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

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

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

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

Session.SendSignal("chat", "Hello", connection1);

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

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

について connection parameter は、シグナルを送信したいセッションに接続されているクライアントに対応する Connection オブジェクトです。Connection オブジェクトへの参照は、 Connection プロパティの ConnectionEventArgs によって使用されるオブジェクト ConnectionCreated Session オブジェクトから送信されたイベント。

について retryAfterReconnect このパラメータは、自動再接続後に信号を送信するかどうかを決定するオプションのパラメータです。詳しくは、 自動再接続中に信号が送信されないようにする.

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

セッション内のすべてのクライアントに信号を送信するには、 Session.SendSignal() メソッドを実行し、 connection パラメータが設定されていません(デフォルト値は null):

session.SendSignal("chat", "Hello");

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

2番目のパラメータ、 signal, は、メッセージとともに送信するデータペイロード(文字列)です。データのサイズ上限は8KBです。

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

信号の受信を開始するには、 Signal メソッドを呼び出します:

session.Signal += Session_Signal;

private void Session_Signal(object sender, SignalEventArgs e)
{
    Console.WriteLine("Session received signal. ");
    Console.WriteLine("Data:" + e.Data);
    Console.WriteLine("Type:" + e.Type);
    Console.WriteLine("From connection with ID:" + e.Connection.Id);
}

セッションでシグナルを受信すると、デリゲートメソッドが呼び出されます。

クライアントから信号が受信されたかどうかを確認するには、. を比較することで確認できます。

@Override
  private void Session_Signal(object sender, SignalEventArgs e)
  {
    String myConnectionId = session.Connection.ID;
    if (e.Connection != null && e.Connection.ID != myConnectionId) {
        // Signal received from another client
    }
}

なお、 REST APIコール セッションに接続しているクライアントではなく、サーバー側からシグナルを送信する場合。この場合、 Connection SignalEventArgs オブジェクトのプロパティは、 null.

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

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