Setting the encryption secret

As sessões com criptografia de ponta a ponta são criadas por meio de APIs do servidor (consulte “Ativando a criptografia usando o API REST). Para que um cliente React Native participe de uma sessão com criptografia de ponta a ponta, defina o encryptionSecret adereço do OTSession componente:

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

Um segredo válido é uma sequência de caracteres com comprimento entre 8 e 256 caracteres.

Você pode alterar o segredo definindo o encryptionSecret atribuir um valor a uma propriedade do estado do React e alterar esse valor:

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

Events and errors

Eventos e erros são essenciais para gerenciar o comportamento da criptografia orientada pelo usuário. A criptografia de ponta a ponta utiliza o modelo de segredo compartilhado: espera-se que todos os participantes da sessão utilizem o mesmo segredo para criptografar seus dados e descriptografar os dados dos demais participantes.

O OTSubscriber error() A função de retorno do manipulador de eventos é invocada quando o assinante não consegue decodificar a mídia de um fluxo devido a um segredo de criptografia incompatível (ou não definido):

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

O OTSession error() O callback do manipulador de eventos é acionado se o cliente tentar se conectar a uma sessão criptografada de ponta a ponta que tenha sido inicializada com um segredo de criptografia inválido (ou sem a especificação de um segredo de criptografia). Um segredo válido é uma string com 8 a 256 caracteres. Para proporcionar a melhor experiência ao usuário, o aplicativo deve detectar um segredo inválido fornecido pelo usuário antes de definir o OTSession encryptionSecret prop. No exemplo a seguir, uma sessão é inicializada com um segredo vazio (e, portanto, inválido), o que gera um erro ao tentar se conectar:

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