Setting the encryption secret

Las sesiones cifradas de extremo a extremo se crean mediante las API del servidor (véase Activación del cifrado mediante la función API REST). Para que un cliente React Native se una a una sesión cifrada de extremo a extremo, establezca el parámetro encryptionSecret puntal del OTSession componente:

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

Un secreto válido es una cadena de entre 8 y 256 caracteres.

Puede cambiar el secreto configurando la opción encryptionSecret prop a una propiedad del estado de React y cambiar su valor:

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

Events and errors

Los eventos y errores son esenciales para gestionar el comportamiento del cifrado dirigido por el usuario. El cifrado de extremo a extremo utiliza el modelo de secreto compartido: se espera que todos los participantes en la sesión utilicen el mismo secreto para cifrar sus medios y descifrar los de los demás.

En OTSubscriber error() se invoca cuando el suscriptor no puede descodificar un flujo de medios debido a un secreto de cifrado no coincidente (o no establecido):

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

En OTSession error() se invoca si el cliente intenta conectarse a una sesión cifrada de extremo a extremo que se inicializó con un secreto de cifrado no válido (o sin especificar un secreto de cifrado). Un secreto válido es una cadena de entre 8 y 256 caracteres. Para obtener la mejor experiencia de usuario, la aplicación debe detectar un secreto no válido antes de establecer el parámetro OTSession encryptionSecret prop. En el siguiente ejemplo, una sesión se inicializa con un secreto vacío (y por tanto inválido), lo que provoca un error al intentar conectarse:

<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>