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 bate-papo fornecem um serviço de dimensionamento automático para comunicação de texto e dados armazenados persistentemente. Outros recursos principais incluem:

  • Identidade e endereçamento personalizados - os Serviços de Comunicação do Azure fornecem identidades genéricas para abordar 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 Bot - É 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 thread de bate-papo é seu 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 todos os threads de bate-papo que criarem.

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, usando os tokens de bate-papo. Consulte Identidade e tokens para obter detalhes. Os participantes não têm acesso de gravação às mensagens enviadas por outros participantes, o que significa que apenas o remetente da mensagem pode atualizar ou excluir suas mensagens enviadas. Se outro participante tentar fazer isso, receberá um erro.

Dados do chat

Os Serviços de Comunicação do Azure armazenam mensagens de chat indefinidamente até que sejam excluídas pelo cliente. Os participantes do thread de chat podem usar ListMessages para exibir o histórico de mensagens de um determinado thread. Os usuários removidos de um thread de bate-papo podem exibir o histórico de mensagens anterior, mas não podem enviar ou receber novas mensagens. Mensagens excluídas acidentalmente não são recuperáveis pelo sistema. Para saber mais sobre os dados armazenados no serviço de chat dos Serviços de Comunicação do Azure, consulte a página de residência de dados e privacidade.

Em 2024, novas funcionalidades serão introduzidas, onde os clientes devem escolher entre retenção indefinida de mensagens ou exclusão automática após 90 dias. As mensagens existentes permanecem inalteradas.

Para clientes que usam compromissos virtuais, consulte nossa privacidade do usuário de interoperabilidade do Teams para armazenamento de mensagens de bate-papo 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 tópicos de bate-papo com mais de 20 participantes, não há suporte para confirmações de leitura e recursos de indicador de digitação.
  • Para cenários de interoperabilidade do Teams, é o número de usuários dos Serviços de Comunicação do Azure, não usuários do Teams, que deve ser inferior a 20 para que o recurso de indicador de digitação tenha suporte.
  • Para cenários de interoperabilidade do Teams, o evento indicador de digitação pode conter um nome de exibição em branco quando enviado do usuário do Teams.
  • Para cenários de interoperabilidade do Teams, as confirmações de leitura não são suportadas para usuários do Teams.

Arquitetura de chat

Há duas partes principais para a arquitetura de bate-papo: 1) Serviço confiável e 2) Aplicativo cliente.

Diagram showing Communication Services' chat architecture.

  • 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. Encontre mais informações sobre tokens de acesso em nosso guia de início rápido sobre tokens de acesso.
  • Aplicativo cliente: o aplicativo cliente se conecta ao seu serviço confiável e recebe os tokens de acesso usados pelos usuários para se conectar diretamente aos Serviços de Comunicação. Depois de criar o thread de bate-papo e adicionar usuários como participantes, eles podem usar o aplicativo cliente para se conectar ao thread de bate-papo e enviar mensagens. As notificações em tempo real em seu aplicativo cliente podem ser usadas para assinar atualizações de mensagem e thread de outros participantes.

Crie experiências de bate-papo inteligentes e alimentadas por IA

Você pode usar 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.
  • Gere um resumo no final da conversa para enviar ao cliente por e-mail com as próximas etapas ou acompanhe posteriormente.
  • Adicione um Power Virtual Agent (PVA) em um canal de Chat dos Serviços de Comunicação do Azure com um Bot do Azure e um bot de retransmissão.
  • Configure um bot para ser executado em um ou mais canais sociais ao lado do canal de bate-papo.

Diagram showing Azure Communication Services can be paired with Azure AI services.

Tipos de Mensagem

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

As mensagens do sistema são geradas quando

  • Um tópico de bate-papo é atualizado
  • um participante foi adicionado ou removido
  • O tópico Thread de bate-papo foi atualizado.

Quando você liga List Messages ou Get Messages em um thread de bate-papo, o resultado contém ambos os tipos de mensagens 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 for fornecido, o padrão dos Serviços de Comunicação será text digitado. 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 foram adicionados ao thread de bate-papo.
  • 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

JavaScript Chat SDK suporta 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 um thread de bate-papo.
  • chatThreadDeleted - quando um usuário dos Serviços de Comunicação exclui um thread de bate-papo.
  • 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 devem ser usadas com aplicativos de servidor.

Eventos do servidor

Esse recurso permite que os aplicativos de servidor escutem eventos como quando uma mensagem é enviada e quando um participante está entrando ou saindo do bate-papo. Os aplicativos de servidor podem reagir a esses eventos, adicionando/removendo participantes ao bate-papo, arquivando bate-papos, realizando análises e muitos outros cenários para orquestração. Para ver que tipos de eventos de bate-papo podem ser usados pelos desenvolvedores, consulte Eventos do servidor.

Notificações por push

Os SDKs de bate-papo para Android e iOS oferecem suporte a notificações por push. Para enviar notificações por push para mensagens perdidas pelos usuários enquanto eles estavam ausentes, conecte um recurso do Hub de Notificação ao recurso Serviços de Comunicação para enviar notificações por push. Isso notificará os usuários do aplicativo sobre bate-papos e mensagens recebidos quando o aplicativo móvel não estiver sendo executado em primeiro plano.

IOS e Android SDK suportam o evento abaixo:

  • chatMessageReceived: quando uma nova mensagem é enviada ao thread de chat por um participante.

O SDK do Android suporta eventos extras:

  • chatMessageEdited: quando uma mensagem é editada em uma conversa de chat.
  • chatMessageDeleted: quando uma mensagem é excluída de uma conversa de chat.
  • chatThreadCreated - quando um usuário dos Serviços de Comunicação cria um thread de bate-papo.
  • chatThreadDeleted - quando um usuário dos Serviços de Comunicação exclui um thread de bate-papo.
  • 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.

Para obter mais informações, consulte 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

Os seguintes documentos podem ser do seu interesse: