シグナリング — iOS

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

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

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

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

セッション内の特定のクライアントにシグナルを送信するには、 [OTSession signalWithType:data:connection:error:] メソッドを呼び出します:

OTError* error = nil;
[session signalWithType:type string:@"hello" connection:_connection error:&error];
if (error) {
    NSLog(@"signal error %@", error);
} else {
    NSLog(@"signal sent");
}

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

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

について connection パラメータは OTConnection シグナルを送信したいセッションに接続されているクライアントに対応するオブジェクト。OTConnection オブジェクトへの参照は、 [OTSessionDelegate:session:connectionCreated:] というメッセージを送った。

について error メソッドの呼び出しが失敗した場合、`error` パラメータには `OTError` オブジェクトが設定されます。成功した場合は、`error` パラメータには `nil` が設定されます。

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

セッション内の特定のクライアントにシグナルを送信するには、 [OTSession signalWithType:string:connection:error:] メソッドを呼び出す:

OTError* error = nil;
[session signalWithType:type string:@"hello" connection:nil error:&error)];
if (error) {
    NSLog(@"signal error %@", error);
} else {
    NSLog(@"signal sent");
}

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

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

について error メソッドの呼び出しが失敗した場合、`error` パラメータには `OTError` オブジェクトが設定されます。成功した場合は、`error` パラメータには `nil` が設定されます。

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

セッション内で信号が送信されると、 [OTSessionDelegate session:receivedSignalType:fromConnection:withString:] メッセージが送信されます。最初のパラメータには、シグナルのタイプ文字列が設定されます。2番目のパラメータは、シグナルの送信者を識別します。3番目のパラメータは、シグナルのデータ文字列です。

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

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

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