Compartilhar via


Conceitos de chat

O chat dos Serviços de Comunicação do Azure pode ajudar você a adicionar comunicação de texto em tempo real a aplicativos multiplataforma. Esta página resume os principais conceitos e funcionalidades de chat. Confira a Visão geral do SDK (Software Development Kit) do chat dos Serviços de Comunicação para obter listas de SDKs, linguagens, plataformas e suporte a recursos detalhados.

As APIs de Chat fornecem um serviço de dimensionamento automático para comunicação de dados e texto armazenados de maneira persistente. Outros recursos principais incluem:

  • Identidade e endereçamento personalizados – Os Serviços de Comunicação do Azure fornecem identidades genéricas para lidar com pontos de extremidade de comunicação. Os clientes usam essas identidades para se autenticarem no serviço do Azure e se comunicarem nos chat threads que você controla.
  • Criptografia – Os SDKs de chat criptografam o tráfego e evitam a adulteração da conexão.
  • Reuniões do Microsoft Teams – Os SDKs de chat podem ingressar em reuniões do Teams e se comunicar com as mensagens de chat do Teams.
  • Notificações em tempo real – Os SDKs de chat usam conectividade persistente eficiente (WebSockets) para receber notificações em tempo real, por exemplo, quando um usuário remoto está digitando. Quando os aplicativos são executados em segundo plano, a funcionalidade interna está disponível para acionar notificações pop-up para informar os usuários finais sobre novos threads e mensagens.
  • Extensibilidade de bots – É fácil adicionar bots do Azure ao serviço de Chat com a integração do Bot do Azure.

Visão geral do chat

As conversas de chat acontecem em threads de chat. Os threads de chat têm as seguintes propriedades:

  • Uma identidade de conversa de chat é a ChatThreadId.
  • Os threads de chat têm entre zero e 250 usuários como participantes que podem enviar mensagens para ele.
  • Um usuário pode fazer parte de um número ilimitado de threads de chat.
  • Somente os participantes do thread podem enviar ou receber mensagens e adicionar ou remover participantes.
  • Os usuários são adicionados como participantes a qualquer conversa de chat que eles criam.

Acesso do usuário

Os Serviços de Comunicação do Azure dão suporte a três níveis de controle de acesso do usuário, por meio dos tokens de chat. Confira Identidade e tokens para obter detalhes. Os participantes não têm acesso de gravação nas mensagens enviadas por outros participantes, o que significa que apenas o remetente da mensagem pode atualizar ou excluir as mensagens enviadas. Se outro participante tentar fazer isso, receberá um erro.

Dados do chat

Os Serviços de Comunicação do Azure armazenam as conversas de chat de acordo com a política de retenção de dados em vigor na criação da conversa. Você pode atualizar a política de retenção, se necessário, durante o período de retenção definido. Depois que você excluir uma conversa de chat (por política ou por uma solicitação da API de Exclusão), ela não poderá ser recuperada.

Importante

A política de retenção de dados descrita nesta seção está atualmente em versão prévia pública. Essa versão prévia do serviço é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Você pode escolher entre a retenção de conversa indefinida, a exclusão automática entre 30 e 90 dias por meio da política de retenção na API de Criação de Conversa de Chat ou a exclusão imediata usando as APIs de Exclusão de Mensagem de Chat ou Exclusão de Conversa de Chat.

Qualquer conversa criado antes da nova política de retenção não é afetada, a menos que você altere especificamente a política dessa conversa. Se você enviar uma solicitação de suporte para uma conversa de chat excluída mais de 30 dias depois que a política de retenção tiver excluído essa conversa, ela não poderá mais ser recuperada e nenhuma informação sobre essa conversa estará disponível. Se necessário, abra um tíquete de suporte o mais rápido possível na janela de 30 dias depois de criar uma conversa para que possamos ajudar você.

Os participantes do thread de chat podem usar ListMessages para exibir o histórico de mensagens de um determinado thread. A API ListMessages não poderá retornar o histórico de uma conversa se a conversa for excluída. Os usuários que são removidos de uma conversa de chat podem ver o histórico de mensagens anteriores, mas não podem enviar nem receber novas mensagens. As mensagens excluídas acidentalmente não podem ser recuperadas pelo sistema. Para saber mais sobre os dados armazenados no serviço de chat dos Serviços de Comunicação do Azure, consulte Disponibilidade de região e residência de dados.

Os clientes que usam compromissos Virtuais devem consultar nossa privacidade do usuário de interoperabilidade do Teams para obter informações sobre o armazenamento de mensagens de chat em reuniões do Teams.

Limites de serviço

  • O número máximo de participantes permitidos em uma conversa de chat é 250.
  • O tamanho máximo permitido da mensagem é de aproximadamente 28 KB.
  • Para conversas de chat com mais de 20 participantes, não há suporte para os recursos de indicador de digitação e confirmações de leitura.
  • Para cenários de Interoperabilidade do Teams, esse é o número de usuários dos Serviços de Comunicação do Azure, não os usuários do Teams, que precisa estar abaixo de 20 para que o recurso de indicador de digitação tenha suporte.
  • Ao criar uma conversa de chat, você pode definir a política de retenção entre 30 e 90 dias.
  • Além disso, nos cenários de interoperabilidade do Teams, há as seguintes limitações:

Arquitetura de chat

Há duas partes principais da arquitetura de chat: 1) Serviço confiável e 2) Aplicativo cliente.

Diagrama mostrando a arquitetura de chat dos Serviços de Comunicação.

  • Serviço confiável: para gerenciar corretamente uma sessão de chat, você precisará de um serviço que ajude você a se conectar aos Serviços de Comunicação usando a cadeia de conexão do recurso. Esse serviço é responsável por criar threads de chat, adicionar e remover participantes e emitir tokens de acesso para os usuários. Para obter mais informações, confira Início Rápido: Criar e gerenciar tokens de acesso.
  • Aplicativo cliente: o aplicativo cliente se conecta ao seu serviço confiável e recebe os tokens de acesso de que os usuários precisam para se conectarem diretamente aos Serviços de Comunicação. Depois que você criar a conversa de chat e adicionar os participantes, eles podem usar o aplicativo cliente para se conectarem à conversa de chat e enviar mensagens. Os participantes podem usar as notificações em tempo real do seu aplicativo cliente para assinar atualizações de mensagens e conversas de outros membros.

Criar experiências de chat inteligentes, da plataforma IA

Use os serviços de IA do Azure com o serviço de Chat para criar casos de uso como:

  • Ajudar um agente de suporte a priorizar tíquetes detectando um sentimento negativo de uma mensagem de entrada de um cliente.
  • Gerar um resumo no final da conversa para enviar ao cliente por email com as próximas etapas ou um acompanhamento em uma data posterior.
  • Adicionar um PVA (Power Virtual Agent) a um canal de Chat dos Serviços de Comunicação do Azure com um Bot do Azure e um bot de retransmissão.
  • Configurar um bot para ser executado em um ou mais canais sociais ao lado do canal de Chat.

Diagrama mostrando que os Serviços de Comunicação do Azure podem ser emparelhados com os serviços de IA do Azure.

Tipos de Mensagem

Como parte do histórico de mensagens, o Chat compartilha mensagens geradas pelo usuário e pelo sistema.

As mensagens do sistema são geradas quando

  • uma conversa de chat é atualizada
  • um participante é adicionado ou removido
  • o tópico da conversa de chat é atualizado.

Quando você chama List Messages ou Get Messages em uma conversa de chat, o resultado contém os dois tipos de mensagem em ordem cronológica. Para mensagens geradas pelo usuário, o tipo de mensagem pode ser definido em SendMessageOptions ao enviar uma mensagem ao thread de chat. Se nenhum valor é fornecido, os Serviços de Comunicação usam o tipo text como padrão. Definir esse valor é importante ao enviar HTML. Quando html é especificado, os Serviços de Comunicação limpam o conteúdo para garantir que ele seja renderizado com segurança nos dispositivos cliente.

  • text: uma mensagem de texto sem formatação composta e enviada por um usuário como parte de um thread de chat.
  • html: uma mensagem formatada usando HTML, composta e enviada por um usuário como parte de um thread de chat.

Tipos de mensagem do sistema:

  • participantAdded: mensagem do sistema que indica que um ou mais participantes estão na conversa de chat.
  • participantRemoved: mensagem do sistema que indica que um participante foi removido do thread de chat.
  • topicUpdated: mensagem do sistema que indica que o tópico da conversa foi atualizado.

Notificações em tempo real

O SDK de Chat do JavaScript dá suporte a notificações em tempo real. Com esse recurso, os clientes podem escutar nos Serviços de Comunicação atualizações em tempo real e mensagens de entrada de um thread de chat sem precisar sondar as APIs.

O aplicativo cliente pode assinar os seguintes eventos:

  • chatMessageReceived: quando uma nova mensagem é enviada ao thread de chat por um participante.
  • chatMessageEdited: quando uma mensagem é editada em uma conversa de chat.
  • chatMessageDeleted: quando uma mensagem é excluída de uma conversa de chat.
  • typingIndicatorReceived: quando outro participante envia um indicador de digitação ao thread de chat.
  • readReceiptReceived: quando outro participante envia uma confirmação de leitura de uma mensagem que leu.
  • chatThreadCreated: quando um usuário dos Serviços de Comunicação cria uma conversa de chat.
  • chatThreadDeleted: quando um usuário dos Serviços de Comunicação exclui uma conversa de chat.
  • chatThreadPropertiesUpdated: quando as propriedades do thread de chat são atualizadas. Atualmente, há suporte apenas para atualizar o tópico do thread.
  • participantsAdded: quando um usuário é adicionado como participante do thread de chat.
  • participantsRemoved: quando um participante existente é removido da conversa de chat.
  • realTimeNotificationConnected - quando a notificação em tempo real está conectada.
  • realTimeNotificationDisconnected - quando a notificação em tempo real está desconectada.

Observação

As notificações em tempo real não precisam ser usadas com aplicativos para servidores.

Eventos do servidor

Esse recurso permite que os aplicativos de servidor ouçam eventos, por exemplo, quando uma mensagem é enviada e quando um participante ingressa no chat ou sai dele. Os aplicativos para servidor podem reagir a esses eventos, adicionando/removendo participantes ao chat, arquivando chats, fazendo análises e muitos outros cenários para orquestração. Para ver quais eventos de chat estão disponíveis para desenvolvedores, consulte Serviços de Comunicação do Azure como uma origem da Grade de Eventos do Azure.

Notificações por push

Os SDKs de Chat do Android e do iOS dão suporte a notificações por push. Para enviar notificações por push de mensagens perdidas pelos participantes enquanto eles estavam ausentes, conecte um recurso do Hub de Notificações com o recurso Serviços de Comunicação para enviar notificações por push. Isso notifica os participantes do aplicativo sobre os chats e as mensagens recebidas quando o aplicativo móvel não está em execução em primeiro plano.

O SDK do iOS e do Android dá suporte aos seguintes eventos:

  • chatMessageReceived: quando um participante envia uma nova mensagem para uma conversa de chat.

O SDK do Android dá suporte a eventos extras:

  • chatMessageEdited: quando um participante edita uma mensagem em uma conversa de chat.
  • chatMessageDeleted: quando um participante exclui uma mensagem em uma conversa de chat.
  • chatThreadCreated: quando um usuário dos Serviços de Comunicação cria uma conversa de chat.
  • chatThreadDeleted: quando um usuário dos Serviços de Comunicação exclui uma conversa de chat.
  • chatThreadPropertiesUpdated: quando você atualiza as propriedades da conversa de chat. Atualmente, há suporte apenas para atualizar o tópico da conversa.
  • participantsAdded: quando você adiciona um participante a uma conversa de chat.
  • participantsRemoved: quando você remove um participante existente da conversa de chat.

Para obter mais informações, confira Notificações por Push.

Observação

Atualmente, o envio de notificações por push de chat com o Hub de Notificações está geralmente disponível no Android versão 1.1.0 e no IOS versão 1.3.0.

Próximas etapas