Conceitos de chat

O Chat dos Serviços de Comunicação do Azure pode ajudá-lo a adicionar comunicação de texto em tempo real aos seus aplicativos entre plataformas. Esta página resume os principais conceitos e recursos do Chat. Consulte a Visão geral do Kit de Desenvolvimento de Software (SDK) do Chat dos Serviços de Comunicação para obter listas de SDKs, idiomas, plataformas e suporte detalhado a recursos.

As APIs de bate-papo fornecem um serviço de dimensionamento automático para comunicação de texto e dados armazenados persistentemente. Outras características importantes 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 autenticar no serviço do Azure e se comunicar uns com os outros em chat threads seu controle.
  • Criptografia - SDKs de bate-papo criptografam o tráfego e impedem adulterações no fio.
  • Reuniões do Microsoft Teams - Os SDKs de bate-papo podem participar de reuniões do Teams e se comunicar com mensagens de bate-papo do Teams.
  • Notificações em tempo real - Os SDKs de bate-papo usam conectividade persistente eficiente (WebSockets) para receber notificações em tempo real, como quando um usuário remoto está digitando. Quando os aplicativos são executados em segundo plano, a funcionalidade interna está disponível para disparar notificações pop-up ("notificações do sistema") para informar os usuários finais sobre novos tópicos 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 bate-papo

As conversas de bate-papo acontecem dentro de tópicos de bate-papo. Os tópicos de bate-papo têm as seguintes propriedades:

  • Uma identidade de thread de bate-papo é o .ChatThreadId
  • Os tópicos de bate-papo têm entre zero a 250 usuários como participantes que podem enviar mensagens para ele.
  • Um usuário pode fazer parte de um número ilimitado de tópicos de bate-papo.
  • Apenas os participantes do thread podem enviar ou receber mensagens, adicionar participantes ou remover participantes.
  • Os usuários são adicionados como participantes a todos os tópicos de bate-papo que criarem.

Acesso do utilizador

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 chat. 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 as mensagens enviadas. Se outro participante tentar fazer isso, ele receberá um erro.

Dados do bate-papo

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 bate-papo podem usar ListMessages para visualizar o histórico de mensagens de um thread específico. Os usuários removidos de um histórico de bate-papo podem visualizar o histórico de mensagens anteriores, mas não podem enviar ou receber novas mensagens. As mensagens apagadas acidentalmente não são recuperáveis pelo sistema. Para saber mais sobre os dados que estão sendo armazenados no serviço de chat dos Serviços de Comunicação do Azure, consulte a página de privacidade e residência de dados.

Em 2024, será introduzida uma nova funcionalidade 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 do Teams Interoperability para armazenar mensagens de bate-papo em reuniões do Teams.

Limites de serviço

  • O número máximo de participantes permitido em um tópico de bate-papo é 250.
  • O tamanho máximo de mensagem permitido é de aproximadamente 28 KB.
  • Para tópicos de bate-papo com mais de 20 participantes, recibos de leitura e recursos de indicador de digitação não são suportados.
  • Para cenários de interoperabilidade do Teams, é o número de usuários dos Serviços de Comunicação do Azure, e não usuários do Teams, que deve ser inferior a 20 para que o recurso de indicador de digitação seja suportado.
  • Para cenários de interoperabilidade do Teams, o evento do indicador de digitação pode conter um nome de exibição em branco quando enviado pelo 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 do bate-papo

Há duas partes principais na arquitetura do chat: 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 bate-papo, você precisa de um serviço que o ajude a se conectar aos Serviços de Comunicação usando sua cadeia de conexão de recurso. Este serviço é responsável por criar tópicos de chat, adicionar e remover participantes e emitir tokens de acesso aos usuários. Mais informações sobre tokens de acesso podem ser encontradas em nosso início rápido de 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 chat e adicionar usuários como participantes, eles podem usar o aplicativo cliente para se conectar ao thread de chat e enviar mensagens. As notificações em tempo real em seu aplicativo cliente podem ser usadas para assinar atualizações de thread de mensagens & de outros participantes.

Crie experiências de bate-papo inteligentes e baseadas em IA

Você pode usar os serviços de IA do Azure com o serviço de Chat para criar casos de uso como:

  • Ajude um agente de suporte a priorizar tíquetes detetando um sentimento negativo de uma mensagem recebida de um cliente.
  • Gere um resumo no final da conversa para enviar ao cliente por e-mail com os próximos passos ou acompanhe em uma data posterior.
  • 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 do tópico do bate-papo foi atualizado.

Quando você liga List Messages ou Get Messages em um tópico 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 ao SendMessageOptions enviar uma mensagem para o chat thread. Se nenhum valor for fornecido, o padrão dos Serviços de Comunicação será digitado text . 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 processado com segurança em dispositivos cliente.

  • text: Uma mensagem de texto simples composta e enviada por um usuário como parte de um tópico de bate-papo.
  • html: Uma mensagem formatada usando html, composta e enviada por um usuário como parte do tópico de bate-papo.

Tipos de mensagens do sistema:

  • participantAdded: Mensagem do sistema que indica que um ou mais participantes foram adicionados ao tópico de chat.
  • participantRemoved: Mensagem do sistema que indica que um participante foi removido do tópico de chat.
  • topicUpdated: Mensagem do sistema que indica que o tópico do thread foi atualizado.

Notificações em tempo real

JavaScript Chat SDK suporta notificações em tempo real. Esse recurso permite que os clientes ouçam os Serviços de Comunicação para atualizações em tempo real e mensagens recebidas em um thread de bate-papo sem precisar pesquisar as APIs.

O aplicativo cliente pode se inscrever nos seguintes eventos:

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

Nota

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 ouçam 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 do chat, arquivando chats, realizando análises e muitos outros cenários para orquestração. Para ver que tipos de eventos de chat podem ser usados pelos desenvolvedores, consulte Eventos do servidor.

Notificações push

Os SDKs de bate-papo para Android e iOS suportam notificações push. Para enviar notificações por push para mensagens perdidas por seus usuários enquanto eles estavam ausentes, conecte um recurso do Hub de Notificação com o recurso Serviços de Comunicação para enviar notificações por push. Isso notificará os usuários do seu aplicativo sobre bate-papos e mensagens recebidas 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 para um tópico de chat por um participante.

O Android SDK suporta eventos extras:

  • chatMessageEdited - quando uma mensagem é editada em um tópico de bate-papo.
  • chatMessageDeleted - quando uma mensagem é excluída em um tópico de bate-papo.
  • chatThreadCreated - quando um usuário dos Serviços de Comunicação cria um thread de chat.
  • chatThreadDeleted - quando um usuário dos Serviços de Comunicação exclui um tópico de bate-papo.
  • chatThreadPropertiesUpdated - quando as propriedades do tópico de bate-papo são atualizadas; Atualmente, apenas a atualização do tópico para o thread é suportada.
  • participantsAdded - quando um usuário é adicionado como participante de um tópico de bate-papo.
  • participantsRemoved - quando um participante existente é removido do tópico de chat.

Para obter mais informações, consulte Notificações push.

Nota

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

Próximos passos

Os seguintes documentos podem ser interessantes para si:

  • Familiarize-se com o SDK de bate-papo