Setting the encryption secret

エンドツーエンドの暗号化セッションは、サーバーAPIを使用して作成されます。 REST API).React Nativeクライアントがエンドツーエンドの暗号化セッションに参加するには encryptionSecret の支柱である。 OTSession コンポーネントを使用している:

<OTSession
  applicationId="api-key"
  sessionId="session-id"
  token="token"
  encryptionSecret="initial-encryption-secret"
>
  <OTPublisher />
  <OTSubscriber />
</OTSession>

有効な秘密は8文字以上256文字以下の文字列である。

を設定することでシークレットを変更できます。 encryptionSecret プロパティをReactステートのプロパティに指定し、その値を変更します:

<OTSession
  applicationId="api-key"
  sessionId="session-id"
  token="token"
  encryptionSecret={this.state.encryptionSecret}>
>
  <OTPublisher />
  <OTSubscriber />
</OTSession>

Events and errors

イベントとエラーは、ユーザー主導の暗号化の動作を管理するために不可欠である。エンドツーエンドの暗号化は、共有秘密モデルを使用します。セッション内の全員が、自分のメディアを暗号化し、他の全員のメディアを復号化するために、同じ秘密を使用することが期待されています。

について OTSubscriber error() イベントハンドラーコールバックは、暗号化シークレットの不一致(または未設定)が原因でサブスクライバーがストリームのメディアをデコードできないときに呼び出される:

<OTSubscriber
eventHandlers={{
    error: event => {
    // Show UI notification.
    },
}}
>

について OTSession error() イベントハンドラーコールバックは、クライアントが無効な暗号化シークレットで初期化された(あるいは暗号化シークレットを指定せずに初期化された)エンドツーエンドの暗号化セッションに接続しようとした場合に呼び出されます。有効なシークレットは8文字以上256文字以下の文字列です。最良のユーザーエクスペリエンスを得るために、アプリケーションは無効なユーザーから提供されたシークレットをキャッチしてから OTSession encryptionSecret プロパティを使用します。次の例では、セッションは空の(つまり無効な)シークレットで初期化され、接続しようとするとエラーになります:

<OTSession
  applicationId="api-key"
  sessionId="session-id"
  token="token"
  encryptionSecret=""
  eventHanders={{
    error: event => {
      // An error event is dispatched if you set an invalid encryption secret
    }
  }}
>
  <OTPublisher />
  <OTSubscriber />
</OTSession>