シグナリング — React Native

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

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

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

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

セッション内の特定のクライアントに信号を送信するには、 signal OTSession コンポーネントの prop を取得し、 to プロパティの signal 接続IDに対する異議申し立て:

<OTSession
  signal={{
    to: 'connection-id',
    data: 'hello',
  }}
/>

について to このプロパティは、シグナルを送信したいセッションに接続しているクライアントの接続 ID です。クライアントの接続 ID は、OTSession オブジェクトがディスパッチを行う際に取得されます。 connectionCreated のイベントがある。

について data プロパティの signal prop は、メッセージとともに送信するデータ文字列です。このプロパティはオプションです。省略した場合、メッセージはデータペイロードなしで送信されます。データのサイズ上限は 8KB です。

さらに、 type 信号のプロパティ。これは、クライアントがフィルタリングを行う際に使用できる文字列値です。 信号を待ち受ける:

<OTSession
  signal={{
    to: 'connection-id',
    data: 'hello',
    type: 'textMessage',
  }}
/>

の最大長。 type 文字列は128バイトであり、文字(A-Z、a-z)、 Numbers(0-9)、'-'、'_'、'~'のみを含まなければならない。

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

セッション内の特定のクライアントに信号を送信するには、 signal OTSession コンポーネントのプロパティですが、 違う を設定する。 to プロパティの signal 接続IDに対する異議申し立て:

<OTSession
  signal={{
    data: 'hello',
  }}
/>

この関数に渡すその他のオプションの詳細については、 signal 小道具、参照 前のセクション.

受信クライアントのセットを制限せずにこのメソッドを呼び出すと、複数のシグナルが送信されます(セッション内の各クライアントに1つずつ)。

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

セッション内で送信されるすべてのシグナルを受信するには、 signal OTSession コンポーネントによって送信されるイベント:

<OTSession
  apiKey="your-api-key"
  sessionId="your-session-id"
  token="your-session-token"
  eventHandlers={{
    signal: event => {
      console.log('signal received from connection ID:', event.connectionId);
      console.log('signal data:', event.data);
      console.log('signal type:', event.type);
    },
  }}
>
  { /* ... */ }
</OTSession>

また、特定のタイプに設定されたシグナルのみを監視することもできます。(必要に応じて、シグナルのタイプを 信号を送る.) イベントハンドラを登録します。 signal:type イベントで、「type」を型文字列に置き換えます。たとえば、以下は「foo」型のシグナルを監視します:

<OTSession
  apiKey="your-api-key"
  sessionId="your-session-id"
  token="your-session-token"
  eventHandlers={{
    'signal:foo': event => {
      console.log('foo signal received from connection ID:', event.connectionId);
      console.log('signal data:', event.data);
    },
  }}
>
  { /* ... */ }
</OTSession>

以下を比較することができます。 connectionId イベントオブジェクトのプロパティで、 connectionId プロパティの sessionConnected Session オブジェクトによってディスパッチされるイベントで、シグナルが自身のクライアントから送信されたものか、それとも別のクライアントから送信されたものかを確認します。

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