Adereços | Opções da sessão | Métodos | Eventos

O OTSession O componente gerencia a conexão com uma sessão do OpenTok. Ele passa o ID da sessão para o sessionId propriedade aos seus componentes filhos. Para desconectar a sessão, desmonte o OTSession componente. Para publicar e assinar, é necessário aninhar OTPublisher e OTSubscriber dentro OTSession:

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      isConnected: false,
    };

    this.otSessionRef = React.createRef();

    this.sessionEventHandlers = {
      streamCreated: event => {
        console.log('Stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Stream destroyed!', event);
      },
      sessionConnected: event => {
        this.setState({
          isConnected: true,
        })
      }
    };
  }

  sendSignal = () => {
    if (this.state.isConnected) {
      this.otSessionRef.current.signal({
        data: 'hello',
        to: '6d26ca65-24c9-45df-b827-424e9952dece', // optional - connection ID of client to recieve the signal
        type: 'greeting', // optional
      })
    }
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" eventHandlers={this.sesssionEventHandlers} ref={this.otSessionRef}>
        <OTPublisher style={{ width: 100, height: 100 }}/>
        <OTSubscriber style={{ width: 100, height: 100 }} />
      </OTSession>
    );
  }
}

Você pode definir as opções da sessão usando o options prop:

class App extends Component {
constructor(props) {
  super(props);
  this.sessionOptions = {
    connectionEventsSuppressed: true, // default is false
    androidZOrder: '', // Android only - valid options are 'mediaOverlay' or 'onTop'
    androidOnTop: '',  // Android only - valid options are 'publisher' or 'subscriber'
    useTextureViews: true,  // Android only - default is false
    ipWhitelist: false, // (/developer/sdks/js/reference/OT.html#initSession - ipWhitelist
    enableStereoOutput: true // Enable stereo output, default is false
    enableSinglePeerConnection: true // Enable single peer connection, default is false
    iceConfig:{
      transportPolicy: 'all', // Valid options are 'all' or 'relay'. Default is 'all'
      includeServers: 'all', // Valid options are 'all' or 'custom'. Default is 'all'
      customServers: [
        {
        urls: [
          'turn:123.124.125.126:3478?transport=udp',
          'turn:123.124.125.126:3478?transport=tcp'
        ],
        username: 'webrtc',
        credential: 'foO0Bar1'
        },
      ],
      filterOutLanCandidates: false, // The default is false
    },
  };
}

render() {
  return (
    <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" options={this.sessionOptions}>
      <OTPublisher style={{ width: 100, height: 100 }}/>
      <OTSubscriber style={{ width: 100, height: 100 }} />
    </OTSession>
  );
}
}

Observe que todas as opções de sessão são opcionais. Consulte Opções da sessão.

Adereços

O objeto OTSession possui as seguintes propriedades:

apiKey (String, obrigatório) -- A chave da API do projeto OpenTok.

sessionId (String, obrigatório) -- O ID da sessão do OpenTok.

token (String, obrigatório) -- O token do OpenTok para o cliente.

opções (Objeto, opcional) — Usado para definir opções de sessão. Consulte Opções da sessão.

sinal (Objeto, opcional) — Usado para enviar um sinal à sessão

manipuladores de eventos (Objeto, opcional) — Um objeto que contém pares chave-valor de nomes de eventos e funções de retorno de chamada para manipuladores de eventos. Consulte Eventos.

segredo de criptografia (String, opcional) — O segredo de criptografia a ser usado para todos os fluxos que o cliente publica e dos quais se inscreve (em uma sessão que utiliza criptografia de ponta a ponta). Consulte a seção sobre criptografia de ponta a ponta guia do desenvolvedor.

Opções da sessão

O options O objeto `prop` do componente OTSession possui as seguintes propriedades (cada uma delas é opcional):

androidZOrder (String) -- Defina como “mediaOverlay” ou “onTop”. Apenas para Android.

androidOnTop (String) -- Defina como “publisher” | “subscriber”. Apenas para Android.

eventos de conexão suprimidos (Booleano) -- Se deve impedir connectionCreated e connectionDestroyed impedir que o evento seja enviado. Talvez seja interessante suprimir esses eventos em sessões de grande porte, como as utilizadas para transmissões de vídeo interativas ao vivo. O valor padrão é false.

ativarSaídaEstéreo (Booleano) — Indica se a saída estéreo deve ser ativada. O valor padrão é falso.

ativarConexãoComUmÚnicoPar (Booleano) -- Definir como true para que o cliente utilize uma única conexão ponto a ponto. O valor padrão é false. Observe que esse recurso está disponível apenas em sessões roteadas. Para obter mais informações, consulte esta documentação.

iceConfig (Objeto) -- Configurações para usar o recurso TURN configurável. Esse recurso está disponível como um recurso adicional.

Este objeto possui as seguintes propriedades:

  • includeServers (String) Se o cliente deve usar exclusivamente seus servidores TURN (“custom”) ou usá-los além dos servidores TURN da OpenTok (“all”).

  • transportPolicy 'all' | 'relay';

  • customServers (Matriz) -- Uma matriz de objetos que define os servidores TURN personalizados a serem utilizados. Cada objeto possui as seguintes propriedades:

    • urls (Matriz de strings) — As URLs do servidor TURN.
    • username (String, opcional) — O nome de usuário.
    • credential: (String, opcional) — As credenciais para o servidor TURN.
  • filterOutLanCandidates -- Se deve filtrar os tipos de candidatos ICE do host que estejam na mesma rede local, forçando o aplicativo a não usar a rede local para estabelecer conectividade de mídia. Essa configuração se aplica apenas ao iOS (e é ignorada no Android). Filtrar os candidatos locais impede que o aplicativo solicite permissão ao usuário ao tentar se inscrever em clientes na mesma rede local em uma sessão retransmitida.

Observe que — ao contrário dos outros iceConfig configurações — essa configuração faz não exigir que o servidor TURN configurável recurso adicional.

Para mais informações, consulte esta documentação.

Lista de endereços IP autorizados (Booleano) -- Se deve-se usar o lista de IPs permitidos recurso. Isso está disponível como um recurso adicional O valor padrão é false.

isCamera2Capable (Booleano) -- Obsoleto e ignorado. Apenas para Android.

proxyUrl (String, opcional) — A URL do proxy a ser usada para a sessão. Trata-se de um complemento recurso. Consulte o Proxy IP do OpenTok guia do desenvolvedor.

migração de sessão (Booleano) — Ativa o recurso de migração de sessão, permitindo que o cliente permaneça conectado durante a rotação de servidores. O valor padrão é false (a migração de sessão não está ativada). Para obter mais informações, consulte Rotação de servidores e migração de sessões.

useTextureViews (Booleano) -- Definir como true para usar visualizações de textura. O padrão é false. Apenas para Android.

Métodos

disableForceMute() Desativa o estado de silenciamento ativo da sessão. Após chamar esse método, os novos streams publicados na sessão não terão mais o áudio silenciado.

Depois que você chamar o método Session.forceMuteAll() (ou quando um moderador em outro cliente chamar a função para silenciar todas as transmissões), quaisquer transmissões publicadas após a chamada de moderação serão publicadas com o áudio silenciado. Chame o OTSession.disableForceMute() método para desativar o silenciamento de uma sessão (para que os novos fluxos publicados não sejam automaticamente silenciados).

Verifique o capabilities.canForceMute propriedade do objeto retornado por OTSession.getCapbabilities() para verificar se você consegue chamar essa função com sucesso. Isso está reservado para clientes que se conectaram com um token ao qual foi atribuída a função de moderador (consulte o Documentação sobre a criação de tokens).

getSessionInfo() Retorna um objeto com as seguintes propriedades:

  • sessionId (String) -- O ID da sessão.

  • connection (Objeto) — Um objeto que define a conexão do cliente local com a sessão. Isso inclui as seguintes propriedades:

    • connectionId (String) -- O ID da conexão do cliente local.

    • creationTime(String) -- A hora em que a conexão foi criada.

    • data (String) -- O dados de conexão para o cliente local.

getCapabilities() Indica se o cliente pode publicar e se inscrever em fluxos na sessão, com base nas funções atribuídas ao token do cliente usado para se conectar à sessão. O método retorna uma Promise que se resolve com um objeto com as seguintes propriedades:

  • canForceMute (Booleano) — Se o cliente pode forçar o silenciamento de fluxos na sessão ou desativar o estado de silenciamento ativo em uma sessão (true) ou não (false).

  • canPublish (Booleano) -- Se o cliente pode publicar fluxos na sessão (true) ou não (false).

  • canSubscribe (Booleano) -- Se o cliente pode se inscrever em fluxos na sessão (true) ou não (false).

A promessa é rejeitada se você não estiver conectado à sessão e o connectionCreated O evento foi acionado.

Para obter mais informações, consulte o Documentação sobre tokens do OpenTok.

reportIssue() Permite que você relate que seu aplicativo apresentou um problema (para visualizar com Inspetor ou para entrar em contato com a equipe de suporte da API da Vonage.) O método retorna uma Promise que se resolve com uma string, o ID do problema.

forceDisconnect() Força um cliente conectado à sessão a se desconectar dela. Passe o ID de conexão do cliente conectado como parâmetro.

Verifique o capabilities.canForceDisconnect propriedade do objeto retornado por OTSession.getCapbabilities() para verificar se você consegue chamar essa função com sucesso. Isso está reservado para clientes que se conectaram com um token ao qual foi atribuída a função de moderador (consulte o Documentação sobre a criação de tokens).

forceMuteAll() Obliga todos os transmissores da sessão (exceto aqueles que estão transmitindo streams excluídos) a silenciar o áudio.

Esse método possui um parâmetro opcional — excludedStreams, e uma matriz de IDs de transmissões. Uma transmissão publicada pelo moderador que chamar o método forceMuteAll() será silenciada junto com as outras transmissões da sessão, a menos que você adicione a transmissão (ou transmissões) do moderador à excludedStreams matriz. Se você omitir o excludedStreams parâmetro, todas as transmissões da sessão (incluindo as do moderador) deixarão de transmitir áudio. Além disso, quaisquer transmissões iniciadas após a chamada para o forceMuteAll() As sessões são publicadas com o áudio silenciado. É possível desativar o silenciamento de uma sessão chamando a função OTSession.disableForceMute() método.

Depois de chamar a Session.disableForceMute() Ao chamar esse método, os novos fluxos publicados na sessão não terão mais o áudio silenciado. A chamada desse método faz com que os objetos Publisher nos clientes que estão publicando os fluxos disparem eventos `muteForced`. Além disso, o objeto Session em cada cliente conectado à sessão dispara o evento `muteForced` (com a propriedade `active` do objeto do evento definida como `true`).

Verifique o capabilities.canForceMute propriedade do objeto retornado por OTSession.getCapbabilities() para verificar se você consegue chamar essa função com sucesso. Isso está reservado para clientes que se conectaram com um token ao qual foi atribuída a função de moderador (consulte o Documentação sobre a criação de tokens).

forceMuteStream() Obliga o editor de um stream especificado a silenciar seu áudio. Passe o ID do stream como parâmetro.

Verifique o capabilities.canForceMute propriedade do objeto retornado por OTSession.getCapbabilities() para verificar se você consegue chamar essa função com sucesso. Isso está reservado para clientes que se conectaram com um token ao qual foi atribuída a função de moderador (consulte o Documentação sobre a criação de tokens).

signal() Envia um sinal aos clientes conectados à sessão. O método possui um parâmetro, um objeto que inclui as seguintes propriedades, cada uma delas opcional (embora normalmente seja recomendável definir o data propriedade):

  • connectionId (String) -- O ID da conexão do cliente ao qual o sinal deve ser enviado. Se esse parâmetro for omitido, o sinal será enviado a todos os clientes conectados à sessão.

  • type (string) -- O tipo do sinal.

  • data (string) -- Os dados do sinal.

Para obter mais informações, consulte o Guia do desenvolvedor de sinalização do OpenTok

Eventos

início do arquivo (Objeto) — Enviada quando uma gravação arquivada de uma sessão é iniciada. Se você se conectar a uma sessão em que a gravação já esteja em andamento, essa mensagem será enviada no momento da conexão. Um Arquivo de Eventos O objeto é passado para o manipulador de eventos.

arquivoInterrompido (String) — Enviado quando a gravação arquivada de uma sessão é encerrada. Um Arquivo de Eventos O objeto é passado para o manipulador de eventos.

conexãoCriada (Objeto) — Enviado quando outro cliente se conecta à sessão. O objeto de conexão representa a conexão do cliente. A Evento de Criação de Conexão O objeto é passado para o manipulador de eventos.

conexão interrompida -- Enviado quando outro cliente se desconecta da sessão. O objeto de conexão representa a conexão que o cliente mantinha com a sessão. A Evento de conexão interrompida O objeto é passado para o manipulador de eventos.

erro (Objeto) — Enviado se a tentativa de conexão com a sessão falhar ou se a conexão com a sessão for interrompida devido a um erro após uma conexão bem-sucedida. Um ErrorEvent O objeto é passado para o manipulador de eventos.

silenciarForçado -- Enviado quando um moderador obriga os clientes que estão transmitindo para a sessão a silenciar o áudio (o active propriedade deste MuteForcedEvent o objeto está definido como true), ou um moderador desativou o estado de áudio silenciado na sessão (a propriedade “active” deste MuteForcedEvent o objeto está definido como false). Um ErrorEvent O objeto é passado para o manipulador de eventos.

otrnError -- Enviado caso ocorra um erro na comunicação entre a instância da sessão nativa e o componente JS.

sessionConnected -- Enviado quando o cliente se conecta à sessão. A SessionConnectEvent O objeto é passado para o manipulador de eventos.

sessão desconectada -- Enviado quando o cliente se desconecta da sessão. A Event de Desconexão de Sessão O objeto é passado para o manipulador de eventos.

sessão reconectada -- Enviado quando o cliente local se reconecta à sessão do OpenTok após uma perda temporária da conexão de rede.

sessão: reconectando -- Enviado quando o cliente local perde a conexão com uma sessão do OpenTok e está tentando se reconectar. Isso ocorre devido a uma perda de conectividade de rede. Se o cliente conseguir se reconectar à sessão, o sessionReconnected a mensagem é enviada. Caso contrário, se o cliente não conseguir se reconectar, o sessionDisconnected A mensagem é enviada.

sinal -- Enviado quando um sinal é recebido na sessão. A SignalEvent O objeto é passado para o manipulador de eventos.

streamCreado -- Enviado quando um novo fluxo é criado nesta sessão. A StreamCreatedEvent O objeto é passado para o manipulador de eventos.

streamDestruído -- Enviado quando um stream deixa de ser publicado na sessão. A StreamDestroyedEvent O objeto é passado para o manipulador de eventos.

streamPropertyChanged -- Enviado quando uma transmissão começa ou interrompe a publicação de áudio ou vídeo, ou se as dimensões do vídeo da transmissão forem alteradas. A StreamPropertyChangedEvent O objeto é passado para o manipulador de eventos.