Señalización — React Native

Utiliza la API de señalización de OpenTok para enviar texto y datos entre los clientes conectados a una sesión de OpenTok.

Para obtener información conceptual sobre la API de señalización de OpenTok, consulta el Resumen sobre la señalización guía del desarrollador.

Este tema incluye las siguientes secciones:

Enviar una señal a un cliente concreto en una sesión

Para enviar una señal a un cliente concreto en una sesión, configura el signal prop del componente OTSession y configura el to propiedad del signal objeto asociado al ID de conexión:

<OTSession
  signal={{
    to: 'connection-id',
    data: 'hello',
  }}
/>

El to La propiedad es un identificador de conexión de un cliente conectado a la sesión a la que deseas enviar una señal. Los identificadores de conexión de los clientes se obtienen cuando el objeto OTSession envía connectionCreated eventos.

El data propiedad del signal «prop» es la cadena de datos que se envía junto con el mensaje. Esta propiedad es opcional. Si se omite, el mensaje se enviará sin carga útil de datos. El límite de tamaño de los datos es de 8 KB.

Además, puedes pasar un type propiedad de la señal. Se trata de un valor de cadena que los clientes pueden utilizar como criterio de filtrado cuando estar atento a las señales:

<OTSession
  signal={{
    to: 'connection-id',
    data: 'hello',
    type: 'textMessage',
  }}
/>

La longitud máxima del type La cadena tiene 128 bytes y solo debe contener letras (A-Z y a-z), Numbers (0-9), «-», «_» y «~».

Envío de una señal a todos los clientes de una sesión

Para enviar una señal a un cliente concreto en una sesión, configura el signal prop del componente OTSession, pero sí no fijar el to propiedad del signal objeto asociado al ID de conexión:

<OTSession
  signal={{
    data: 'hello',
  }}
/>

Para obtener más información sobre las demás opciones que se pasan a la función signal accesorio, véase la sección anterior.

Si se llama a este método sin limitar el conjunto de clientes destinatarios, se enviarán varias señales (una a cada cliente de la sesión).

Recepción de señales en una sesión

Para empezar a recibir todas las señales enviadas en una sesión, añade un controlador de eventos para el signal evento, enviado por el componente OTSession:

<OTSession
  apiKey="your-api-key"
  sessionId="your-session-id"
  token="your-session-token"
  eventHandlers={{
    signal: event => {
      console.log('signal received from connection ID:', event.connectionId);
      console.log('signal data:', event.data);
      console.log('signal type:', event.type);
    },
  }}
>
  { /* ... */ }
</OTSession>

También puedes escuchar solo las señales configuradas con un tipo específico. (Si lo deseas, puedes establecer el tipo de una señal cuando enviar una señal.) Registrar un controlador de eventos para el signal:type evento, sustituyendo «type» por la cadena que indica el tipo. Por ejemplo, el siguiente código escucha señales del tipo «foo»:

<OTSession
  apiKey="your-api-key"
  sessionId="your-session-id"
  token="your-session-token"
  eventHandlers={{
    'signal:foo': event => {
      console.log('foo signal received from connection ID:', event.connectionId);
      console.log('signal data:', event.data);
    },
  }}
>
  { /* ... */ }
</OTSession>

Puedes comparar el connectionId propiedad del objeto de evento con el connectionId propiedad del sessionConnected evento enviado por el objeto Session para comprobar si la señal la ha enviado tu cliente u otro.

Ten en cuenta que puedes utilizar un Llamada a la API REST para enviar una señal desde tu servidor, en lugar de desde un cliente conectado a la sesión. En este caso, el connectionId La propiedad del objeto de evento se establece en null.