Atrezo | Opciones de sesión | Métodos | Eventos

El OTSession El componente gestiona la conexión a una sesión de OpenTok. Pasa el ID de la sesión al sessionId propiedad a sus componentes secundarios. Para desconectar la sesión, desmonta el OTSession componente. Para publicar y suscribirse, debes anidar OTPublisher y 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>
    );
  }
}

Puedes configurar las opciones de sesión mediante el 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>
  );
}
}

Ten en cuenta que todas las opciones de sesión son opcionales. Consulta Opciones de sesión.

Atrezo

El objeto OTSession tiene las siguientes propiedades:

apiKey (Cadena, obligatorio) -- La clave de la API del proyecto OpenTok.

sessionId (Cadena, obligatorio) -- El identificador de sesión de OpenTok.

ficha (Cadena, obligatorio) -- El token de OpenTok del cliente.

opciones (Objeto, opcional) -- Se utiliza para definir las opciones de la sesión. Véase Opciones de sesión.

señal (Objeto, opcional) -- Se utiliza para enviar una señal a la sesión

manejadores de eventos (Objeto, opcional) -- Un objeto que contiene pares clave-valor con los nombres de los eventos y las funciones de devolución de llamada para los controladores de eventos. Véase Eventos.

clave de cifrado (Cadena, opcional) -- La clave de cifrado que se utilizará para todos los flujos que el cliente publique y a los que se suscriba (en una sesión que utilice cifrado de extremo a extremo). Véase el cifrado de extremo a extremo Guía para desarrolladores.

Opciones de sesión

El options El objeto «prop» del componente OTSession tiene las siguientes propiedades (todas ellas opcionales):

androidZOrder (Cadena) -- Establecer en «mediaOverlay» o «onTop». Solo para Android.

androidOnTop (Cadena) -- Establecer en «publisher» | «subscriber». Solo para Android.

eventos de conexión suprimidos (Booleano) -- Si se debe impedir connectionCreated y connectionDestroyed que se envíe el evento. Es posible que desees suprimir estos eventos en sesiones de gran tamaño, como las que se utilizan para retransmisiones de vídeo interactivas en directo. El valor por defecto es «false».

activarSalidaEstéreo (Booleano) -- Indica si se debe habilitar la salida estéreo. El valor por defecto es «false».

habilitarConexiónEntreDosPares (Booleano) -- Establecer en true para que el cliente utilice una única conexión entre pares. El valor por defecto es false. Ten en cuenta que esta función solo está disponible en sesiones enrutadas. Para obtener más información, consulta esta documentación.

iceConfig (Objeto) -- Configuración para utilizar el función TURN configurable. Esta función está disponible como un funcionalidad adicional.

Este objeto tiene las siguientes propiedades:

  • includeServers (Cadena) Si el cliente debe utilizar exclusivamente tus servidores TURN («custom») o utilizarlos además de los servidores TURN de OpenTok («all»).

  • transportPolicy 'all' | 'relay';

  • customServers (Matriz) -- Una matriz de objetos que definen los servidores TURN personalizados que se van a utilizar. Cada objeto tiene las siguientes propiedades:

    • urls (Matriz de cadenas) -- Las URL del servidor TURN.
    • username (Cadena, opcional) -- El nombre de usuario.
    • credential: (cadena, opcional) -- Las credenciales para el servidor TURN.
  • filterOutLanCandidates -- Si se deben excluir los tipos de candidatos ICE del mismo host que se encuentran en la misma red de área local, lo que obliga a la aplicación a no utilizar la red local para establecer la conectividad multimedia. Esta configuración solo se aplica a iOS (y se ignora en Android). Al filtrar los candidatos locales, se evita que la aplicación solicite permiso al usuario cuando intenta suscribirse a clientes de la misma red local en una sesión retransmitida.

Ten en cuenta que, a diferencia de los demás iceConfig esta configuración no no requieren la servidor TURN configurable función adicional.

Para más información esta documentación.

Lista blanca de direcciones IP (Booleano) -- Si se debe utilizar el lista de direcciones IP permitidas función. Está disponible como un funcionalidad adicional El valor por defecto es «false».

isCamera2Capable (Booleano) -- Obsoleto y se ignora. Solo para Android.

proxyUrl (Cadena, opcional) -- La URL del proxy que se utilizará para la sesión. Se trata de un complemento característica. Consulta el Proxy IP de OpenTok guía del desarrollador.

sessionMigration (Booleano) -- Activa la función de migración de sesiones, lo que permite que el cliente permanezca conectado durante la rotación de servidores. El valor por defecto es «false» (la migración de sesiones no está activada). Para obtener más información, consulta Rotación de servidores y migración de sesiones.

useTextureViews (Booleano) -- Establecer en true para utilizar vistas de textura. El valor por defecto es false. Solo para Android.

Métodos

disableForceMute() Desactiva el estado de silencio activo de la sesión. Una vez que se llame a este método, las nuevas transmisiones publicadas en la sesión ya no tendrán el audio silenciado.

Una vez que se invoque el método `Session.forceMuteAll()` (o cuando un moderador de otro cliente realice una llamada para silenciar todas las transmisiones), cualquier transmisión publicada tras la llamada de moderación se publicará con el audio silenciado. Invoca el OTSession.disableForceMute() Método para desactivar el estado de silencio de una sesión (de modo que las nuevas transmisiones publicadas no se silencien automáticamente).

Compruebe el capabilities.canForceMute propiedad del objeto devuelto por OTSession.getCapbabilities() para comprobar si puedes llamar a esta función correctamente. Está reservada para los clientes que se hayan conectado con un token al que se le haya asignado el rol de moderador (consulta el Documentación sobre la creación de tokens).

getSessionInfo() Devuelve un objeto con las siguientes propiedades:

  • sessionId (Cadena) -- El identificador de sesión.

  • connection (Objeto) -- Un objeto que define la conexión del cliente local a la sesión. Incluye las siguientes propiedades:

    • connectionId (Cadena) -- El ID de conexión del cliente local.

    • creationTime(Cadena) -- La hora en la que se creó la conexión.

    • data (Cadena) -- El datos de conexión para el cliente local.

getCapabilities() Indica si el cliente puede publicar y suscribirse a flujos en la sesión, en función de los roles asignados al ficha de cliente que se utiliza para conectarse a la sesión. El método devuelve una Promise que se resuelve con un objeto que tiene las siguientes propiedades:

  • canForceMute (Booleano) -- Indica si el cliente puede forzar el silenciamiento de las transmisiones en la sesión o desactivar el estado de silenciamiento activo en una sesión (true) o no (false).

  • canPublish (Booleano) -- Indica si el cliente puede publicar flujos en la sesión (true) o no (false).

  • canSubscribe (Booleano) -- Indica si el cliente puede suscribirse a flujos en la sesión (true) o no (false).

La promesa se rechaza si no te has conectado a la sesión y el connectionCreated Se ha activado el evento.

Para más información, consulte el Documentación sobre los tokens de OpenTok.

reportIssue() Te permite informar de que tu aplicación ha tenido un problema (para verlo con Inspector o para consultar con el equipo de asistencia técnica de la API de Vonage.) El método devuelve una Promise que se resuelve con una cadena de caracteres, el ID del incidente.

forceDisconnect() Obliga a un cliente conectado a la sesión a desconectarse de ella. Se debe pasar como parámetro el ID de conexión del cliente conectado.

Compruebe el capabilities.canForceDisconnect propiedad del objeto devuelto por OTSession.getCapbabilities() para comprobar si puedes llamar a esta función correctamente. Está reservada para los clientes que se hayan conectado con un token al que se le haya asignado el rol de moderador (consulta el Documentación sobre la creación de tokens).

forceMuteAll() Obliga a todos los emisores de la sesión (excepto a aquellos que emiten transmisiones excluidas) a silenciar el audio.

Este método tiene un parámetro opcional: -- excludedStreams, y una matriz de identificadores de transmisiones. Una transmisión publicada por el moderador que invoque el método forceMuteAll() se silenciará junto con el resto de transmisiones de la sesión, a menos que añadas la transmisión (o transmisiones) del moderador a la excludedStreams matriz. Si omites el excludedStreams parámetro, todas las transmisiones de la sesión (incluidas las del moderador) dejarán de emitir audio. Además, cualquier transmisión que se inicie después de la llamada a la función forceMuteAll() se publican con el audio silenciado. Puede eliminar el estado de silencio de una sesión llamando al método OTSession.disableForceMute() método.

Después de llamar a la Session.disableForceMute() método, las nuevas transmisiones publicadas en la sesión ya no tendrán el audio silenciado. Al llamar a este método, los objetos Publisher de los clientes que publican las transmisiones envían eventos «muteForced». Además, el objeto Session de cada cliente conectado a la sesión envía el evento «muteForced» (con la propiedad «active» del objeto de evento establecida en «true»).

Compruebe el capabilities.canForceMute propiedad del objeto devuelto por OTSession.getCapbabilities() para comprobar si puedes llamar a esta función correctamente. Está reservada para los clientes que se hayan conectado con un token al que se le haya asignado el rol de moderador (consulta el Documentación sobre la creación de tokens).

forceMuteStream() Obliga al editor de una transmisión específica a silenciar su audio. Se debe pasar el ID de la transmisión como parámetro.

Compruebe el capabilities.canForceMute propiedad del objeto devuelto por OTSession.getCapbabilities() para comprobar si puedes llamar a esta función correctamente. Está reservada para los clientes que se hayan conectado con un token al que se le haya asignado el rol de moderador (consulta el Documentación sobre la creación de tokens).

signal() Envía una señal a los clientes conectados a la sesión. El método tiene un parámetro, un objeto que incluye las siguientes propiedades, cada una de las cuales es opcional (aunque normalmente se suele establecer el data propiedad):

  • connectionId (Cadena) -- El identificador de conexión del cliente al que se va a enviar la señal. Si se omite, la señal se envía a todos los clientes conectados a la sesión.

  • type (cadena) -- El tipo de señal.

  • data (cadena) -- Los datos de la señal.

Para más información, consulte el Guía para desarrolladores de señalización de OpenTok

Eventos

Inicio del archivo (Objeto) — Se envía cuando comienza la grabación archivada de una sesión. Si te conectas a una sesión en la que la grabación ya está en curso, este mensaje se envía en el momento de la conexión. Un Archivo de eventos El objeto se pasa al controlador de eventos.

archivoDetenido (Cadena) — Se envía cuando finaliza la grabación archivada de una sesión. Un Archivo de eventos El objeto se pasa al controlador de eventos.

conexiónCreada (Objeto) — Se envía cuando otro cliente se conecta a la sesión. El objeto de conexión representa la conexión del cliente. A Evento de creación de conexión El objeto se pasa al controlador de eventos.

conexión interrumpida -- Se envía cuando otro cliente se desconecta de la sesión. El objeto «connection» representa la conexión que el cliente tenía con la sesión. A Evento de conexión interrumpida El objeto se pasa al controlador de eventos.

error (Objeto) — Se envía si falla el intento de conectarse a la sesión o si la conexión a la sesión se interrumpe debido a un error tras haberse establecido correctamente. Un ErrorEvent El objeto se pasa al controlador de eventos.

silenciamiento forzado -- Se envía cuando un moderador ha obligado a los clientes que publican transmisiones en la sesión a silenciar el audio (el active propiedad de esto MuteForcedEvent El objeto está establecido en true), o bien un moderador ha desactivado el estado de silencio de audio en la sesión (la propiedad «active» de este MuteForcedEvent El objeto está establecido en false). Un ErrorEvent El objeto se pasa al controlador de eventos.

otrnError -- Se envía si se produce un error en la comunicación entre la instancia de sesión nativa y el componente JS.

sessionConnected -- Se envía cuando el cliente se conecta a la sesión. A SessionConnectEvent El objeto se pasa al controlador de eventos.

sesión desconectada -- Se envía cuando el cliente se desconecta de la sesión. A SessionDisconnectEvent El objeto se pasa al controlador de eventos.

sessionReconnected -- Se envía cuando el cliente local se ha vuelto a conectar a la sesión de OpenTok tras haber perdido temporalmente la conexión a la red.

Reconexión de sesión -- Se envía cuando el cliente local ha perdido la conexión con una sesión de OpenTok y está intentando volver a conectarse. Esto se debe a una pérdida de conectividad de red. Si el cliente consigue volver a conectarse a la sesión, el sessionReconnected se envía el mensaje. De lo contrario, si el cliente no puede volver a conectarse, el sessionDisconnected se envía el mensaje.

señal -- Se envía cuando se recibe una señal en la sesión. A SignalEvent El objeto se pasa al controlador de eventos.

streamCreado -- Se envía cuando se crea una nueva transmisión en esta sesión. A StreamCreatedEvent El objeto se pasa al controlador de eventos.

streamDestroyed -- Se envía cuando un flujo deja de publicarse en la sesión. A StreamDestroyedEvent El objeto se pasa al controlador de eventos.

streamPropertyChanged -- Se envía cuando una transmisión ha comenzado o dejado de publicar audio o vídeo, o si han cambiado las dimensiones de vídeo de la transmisión. A StreamPropertyChangedEvent El objeto se pasa al controlador de eventos.