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 el API REST). Para que un cliente de React Native se incorpore a una sesión cifrada de extremo a extremo, configura el encryptionSecret puntal del OTSession componente:
<OTSession
applicationId="api-key"
sessionId="session-id"
token="token"
encryptionSecret="initial-encryption-secret"
>
<OTPublisher />
<OTSubscriber />
</OTSession>
Una contraseña válida es una cadena de entre 8 y 256 caracteres.
Puedes cambiar el secreto configurando el 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.
El 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.
},
}}
>
El OTSession error() La llamada de retorno del controlador de eventos se activa si el cliente intenta conectarse a una sesión cifrada de extremo a extremo que se haya inicializado con un secreto de cifrado no válido (o sin especificar ningún secreto de cifrado). Un secreto válido es una cadena de entre 8 y 256 caracteres. Para garantizar la mejor experiencia de usuario, la aplicación debería detectar un secreto no válido proporcionado por el usuario antes de establecer el 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>