Reações
Este artigo descreve como implementar reações para SDKs de Chamada dos Serviços de Comunicação do Azure. Essa funcionalidade permite que os usuários em uma chamada em grupo ou reunião enviem e recebam reações com os participantes dos Serviços de Comunicação do Azure e do Microsoft Teams.
As reações dos usuários no Microsoft Teams são controladas pelas configurações e configurações de política no Teams. Informações adicionais estão disponíveis em Gerenciar reações em reuniões e webinars do Teams e Opções de reunião no Microsoft Teams.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso dos Serviços de Comunicação implantado. Crie um recurso dos Serviços de Comunicação.
- Um token de acesso de usuário para habilitar o cliente de chamada. Para saber mais, confira Criar e gerenciar token de acesso.
- Opcional: conclua o guia de início rápido para Adicionar chamada de voz ao seu aplicativo.
Limites de reações
O sistema puxa reações por lotes em intervalos regulares. A limitação atual do lote é de 20.000 reações puxadas a cada 3 segundos.
Se o número de reações exceder o limite, as reações restantes serão enviadas no próximo lote.
Suporte
As tabelas a seguir definem o suporte ao destaque nos Serviços de Comunicação do Azure.
O suporte à reunião do Teams é baseado na Política do Teams.
Identidades e tipos de chamadas
A tabela a seguir mostra suporte para reações em diferentes tipos de chamada e identidade.
Identidades | Reunião de interoperabilidade do Teams | Sala | Chamada 1:1 | Chamada em grupo | Chamada de grupo de interoperabilidade do Teams |
---|---|---|---|---|---|
Usuário dos Serviços de Comunicação | ✔️ | ✔️ | ✔️ | ✔️ | |
Usuário do Microsoft 365 | ✔️ | ✔️ | ✔️ |
Operações
A tabela a seguir mostra o suporte a reações no SDK de Chamada em relação aos tipos de identidade individuais.
Operações | Usuário dos Serviços de Comunicação | Usuário do Microsoft 365 |
---|---|---|
Enviar reações específicas (curtir, amar, risada, aplausos, surpreso) | ✔️ | ✔️ |
Receber reações específicas (curtir, amar, risada, aplausos, surpresa) | ✔️ | ✔️ |
SDKs
A tabela a seguir mostra o suporte para o recurso de Modo Juntos em SDKs individuais dos Serviços de Comunicação do Azure.
Plataformas | Web | Interface do usuário da Web | iOS | Interface do usuário do iOS | Android | Interface do usuário do Android | Windows |
---|---|---|---|---|---|---|---|
Tem suporte | ✔️ | ✔️ |
Instalar o SDK
Use o comando npm install
para instalar o SDK Comum e de Chamada dos Serviços de Comunicação do Azure para JavaScript:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Inicializar objetos necessários
Uma instância CallClient
é necessária para a maioria das operações de chamada. Ao criar uma instância de CallClient
, você pode configurá-la com opções personalizadas, como uma instância de Logger
.
Com a instância de CallClient
, você pode criar uma instância de CallAgent
chamando o createCallAgent
. Esse método retorna de modo assíncrono um objeto de instância CallAgent
.
O método createCallAgent
usa CommunicationTokenCredential
como um argumento. Ele aceita um token de acesso do usuário.
Você pode usar o método getDeviceManager
na instância CallClient
para acessar o deviceManager
.
const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");
// Set the logger's log level
setLogLevel('verbose');
// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
console.log(...args); // Redirect log output to console
};
const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()
Como gerenciar melhor a conectividade do SDK com a infraestrutura da Microsoft
A instância Call Agent
ajuda você a gerenciar chamadas (para ingressar ou iniciar chamadas). Para trabalhar, o SDK de chamada precisa se conectar à infraestrutura da Microsoft para receber notificações de chamadas de entrada e coordenar outros detalhes da chamada. O seu Call Agent
tem dois estados possíveis:
Conectado: um valor connectionStatue Call Agent
de Connected
significa que o SDK do cliente está conectado e capaz de receber notificações da infraestrutura da Microsoft.
Desconectado: um valor connectionStatue Call Agent
de Disconnected
declara que há um problema que está impedindo o SDK de se conectar corretamente. Call Agent
deve ser recriado.
invalidToken
: se um token tiver expirado ou for inválido, a instânciaCall Agent
se desconecta com este erro.connectionIssue
: se houver um problema com o cliente se conectando à infraestrutura da Microsoft, depois de muitas tentativasCall Agent
expõe o erroconnectionIssue
.
Você pode verificar se o local Call Agent
está conectado à infraestrutura da Microsoft inspecionando o valor atual da propriedade connectionState
. Durante uma chamada ativa, você pode ouvir o evento connectionStateChanged
para determinar se Call Agent
muda do estado Conectado para Desconectado.
const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'
const connectionStateCallback = (args) => {
console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
// it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);
Implementar reações para os participantes da reunião
Nos Serviços de Comunicação do Azure, os participantes podem enviar e receber reações durante uma chamada em grupo:
- Como
- Amor
- Aplausos
- Rir
- Surpresa
Para enviar uma reação, use a API sendReaction(reactionMessage)
. Para receber uma reação, a mensagem é compilada com o tipo ReactionMessage
usando enumerações Reaction
como um atributo.
Você precisa assinar eventos que fornecem os dados do evento do assinante:
export interface ReactionEventPayload {
/**
* identifier for a participant
*/
identifier: CommunicationUserIdentifier | MicrosoftTeamsUserIdentifier;
/**
* reaction type received
*/
reactionMessage: ReactionMessage;
}
Você pode determinar qual reação vem de qual participante com atributo identifier
e obtém o tipo de reação de ReactionMessage
.
Exemplo de como enviar uma reação em uma reunião
const reaction = call.feature(SDK.Features.Reaction);
const reactionMessage: SDK.ReactionMessage = {
reactionType: 'like'
};
await reaction.sendReaction(reactionMessage);
Exemplo de como receber uma reação em uma reunião
const reaction = call.feature(SDK.Features.Reaction);
reaction.on('reaction', event => {
// user identifier
console.log("User Mri - " + event.identifier);
// received reaction
console.log("User Mri - " + event.reactionMessage.reactionType);
// reaction message
console.log("reaction message - " + JSON.stringify(event.reactionMessage));
}
Pontos-chave ao usar reações
- Há suporte para reações em cenários de interoperabilidade do Microsoft Teams. O suporte é baseado na Política do Teams.
- Há suporte para reações no SDK de Chamada da Web.
- Atualmente, não há suporte para reações nos SDKs Nativos.