Sinalização — React Native
Use a API de sinalização do OpenTok para enviar texto e dados entre clientes conectados a uma sessão do OpenTok.
Para obter informações conceituais sobre a API de sinalização do OpenTok, consulte o Visão geral da sinalização guia do desenvolvedor.
Este tópico inclui as seguintes seções:
Envio de um sinal para um cliente específico em uma sessão
Para enviar um sinal a um cliente específico em uma sessão, defina o signal
prop do componente OTSession e definir o to propriedade do signal objeto associado ao ID da conexão:
<OTSession
signal={{
to: 'connection-id',
data: 'hello',
}}
/>
O to A propriedade é um ID de conexão de um cliente conectado à sessão à qual você deseja enviar um sinal. Você obtém os IDs de conexão dos clientes quando o objeto OTSession despacha connectionCreated eventos.
O data propriedade do signal prop é a sequência de dados que você envia junto com a mensagem. Essa propriedade é opcional. Se você a omitir, a mensagem será enviada sem carga útil de dados. O limite para o tamanho dos dados é de 8 KB.
Além disso, você pode passar um type propriedade do sinal. Trata-se de um valor de string que os clientes podem usar como critério de filtragem quando ficar atento aos sinais:
<OTSession
signal={{
to: 'connection-id',
data: 'hello',
type: 'textMessage',
}}
/>
O comprimento máximo do type A sequência de caracteres tem 128 bytes e deve conter apenas letras (A-Z e a-z), números (0-9), '-', '_' e '~'.
Envio de um sinal para todos os clientes em uma sessão
Para enviar um sinal a um cliente específico em uma sessão, defina o signal
prop do componente OTSession, mas faça não definir o to propriedade do signal objeto associado ao ID da conexão:
<OTSession
signal={{
data: 'hello',
}}
/>
Para obter detalhes sobre as outras opções que você passa para o signal adereço, veja a seção anterior.
Chamar esse método sem limitar o conjunto de clientes destinatários resultará no envio de vários sinais (um para cada cliente na sessão).
Recebimento de sinais em uma sessão
Para começar a receber todos os sinais enviados em uma sessão, adicione um manipulador de eventos para o signal evento, disparado pelo 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>
Você também pode monitorar apenas sinais definidos como um tipo específico. (Opcionalmente, você pode definir o tipo de um sinal ao enviar um sinal.) Registrar um manipulador de eventos para o signal:type evento, substituindo “type” pela string do tipo. Por exemplo, o código a seguir escuta sinais do 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>
Você pode comparar o connectionId propriedade do objeto do evento com o connectionId propriedade do sessionConnected evento disparado pelo objeto Session para verificar se o sinal foi enviado pelo seu cliente ou por outro.
Observe que você pode usar um Chamada à API REST para enviar um sinal a partir do seu servidor, em vez de a partir de um cliente conectado à sessão. Nesse caso, o connectionId a propriedade do objeto do evento está definida como null.