Partilhar via


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) de Chat dos Serviços de Comunicação para obter listas de SDKs, idiomas, plataformas e suporte detalhado a funcionalidades.

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 comunicar-se uns com os outros no 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 enviar notificações pop-up ("notificações de aviso") para informar os usuários finais sobre novas conversas 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 é sua 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 threads de chat de acordo com a política de retenção de dados em vigor quando o thread é criado. Você pode atualizar a política de retenção, se necessário, durante o período de tempo de retenção definido. Depois de excluir um thread de bate-papo (por política ou por uma solicitação de API de exclusão), ele não pode ser recuperado.

Importante

A política de retenção de dados descrita nesta seção está atualmente em visualização pública. Esta versão de pré-visualização do serviço é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Pode escolher entre:

Qualquer thread criado antes da nova política de retenção não é afetado, a menos que você altere especificamente a política para esse thread. Se você enviar uma solicitação de suporte para um thread de bate-papo excluído mais de 30 dias após a política de retenção excluir esse thread, ele não poderá mais ser recuperado e nenhuma informação sobre esse thread estará disponível. Se necessário, abra um ticket de suporte o mais rápido possível dentro da janela de 30 dias após criar um thread para que possamos ajudá-lo.

Os participantes do thread de bate-papo podem usar ListMessages para visualizar o histórico de mensagens de um thread específico. A ListMessages API não pode retornar o histórico de um thread se o thread for excluído. 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 armazenados no serviço de chat dos Serviços de Comunicação do Azure, consulte Disponibilidade de região e residência de dados.

Para clientes que usam compromissos virtuais, consulte nossa privacidade do usuário no Teams Interoperability para armazenamento de 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 conversas com mais de 20 participantes, os recibos de leitura e os indicadores 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 estar abaixo de 20 para que o recurso de indicador de digitação seja suportado.
  • Ao criar um thread de chat, você pode definir a política de retenção entre 30 e 90 dias.
  • Além disso, em cenários de interoperabilidade de equipes, há as seguintes limitações:
    • O nome de exibição do usuário do Teams no evento indicador de digitação está em branco.
    • A confirmação de leitura não é suportada.
    • Não há suporte para determinadas identidades, como usuários de Bot, usuários do Skype, usuários não corporativos e similares.

Arquitetura do bate-papo

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

Diagrama mostrando a arquitetura de bate-papo dos Serviços de Comunicação.

  • 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. Para obter mais informações, consulte Guia de 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 conectar diretamente aos Serviços de Comunicação. Depois de criar o thread de chat e adicionar participantes, eles podem usar o aplicativo cliente para se conectar ao thread de chat e enviar mensagens. Os participantes podem usar notificações em tempo real no seu aplicativo cliente para se inscrever em atualizações de mensagens e threads de outros membros.

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 pedidos detetando sentimento negativo numa 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 Agente 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.

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 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 bate-papo foi atualizado.

Quando chama List Messages ou Get Messages num tópico de chat, o resultado contém ambos os tipos de mensagem em ordem cronológica. Para mensagens geradas pelo utilizador, o tipo de mensagem pode ser definido no SendMessageOptions ao enviar uma mensagem para o fio de conversa. Se nenhum valor for fornecido, os Serviços de Comunicação usarão o tipo predefinido 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 estão no 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 está 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

Não use notificações em tempo real 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 quais eventos de chat estão disponíveis para os desenvolvedores, consulte Serviços de Comunicação do Azure como uma fonte de Grade de Eventos do Azure.

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 pelos participantes 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 notifica os participantes do aplicativo sobre chats e mensagens recebidas quando o aplicativo móvel não está sendo executado em primeiro plano.

IOS e Android SDK suportam os seguintes eventos:

  • chatMessageReceived - quando um participante envia uma nova mensagem para um tópico de chat.

O Android SDK suporta eventos extras:

  • chatMessageEdited - quando um participante edita uma mensagem num tópico de chat.
  • chatMessageDeleted - quando um participante apaga uma mensagem num tópico de chat.
  • 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 se atualiza as propriedades do tópico da conversa; atualmente, apenas a atualização do tópico da conversa é suportada.
  • participantsAdded - quando você adiciona um participante a um tópico de bate-papo.
  • participantsRemoved - quando você remove um participante existente do tópico de bate-papo.

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