Conceptos de chat

El chat de Azure Communication Services puede ayudar a agregar comunicación de texto en tiempo real a las aplicaciones multiplataforma. En esta página se resumen las funcionalidades y conceptos clave del chat. Vea la introducción al kit de desarrollo de software (SDK) de chat de Communication Services para obtener listas detalladas de SDK, lenguajes, plataformas y características compatibles.

Las API de chat proporcionan un servicio de escalado automático para la comunicación de texto y datos almacenados de forma persistente. Otras características clave incluyen:

  • Identidad personalizada y direccionamiento: Azure Communication Services proporciona identidades genéricas para abordar los puntos de conexión de comunicación. Los clientes usan estas identidades para autenticarse en el servicio de Azure y comunicarse entre sí en chat threads que controla.
  • Cifrado: los SDK de chat cifran el tráfico y evitan su alteración en la conexión.
  • Reuniones de Microsoft Teams: los SDK de chat pueden unirse a reuniones de Teams y comunicarse con mensajes de chat de Teams.
  • Notificaciones en tiempo real: los SDK de chat usan una conectividad persistente eficaz (WebSockets) para recibir notificaciones en tiempo real, por ejemplo cuando un usuario remoto escribe. Si hay aplicaciones ejecutándose en segundo plano, la funcionalidad integrada está disponible para enviar notificaciones emergentes ("notificaciones del sistema") para notificar a los usuarios finales nuevas conversaciones y mensajes.
  • Extensibilidad de bots: es fácil agregar bots de Azure al servicio chat con la integración de Azure Bot.

Información general sobre el chat

Las conversaciones de chat se producen dentro de los hilos o conversaciones de chat. Las conversaciones de chat tienen las propiedades siguientes:

  • Una identidad de subproceso de chat es su ChatThreadId.
  • Las conversaciones de chat tienen entre 0y 250 usuarios como participantes que pueden enviar mensajes.
  • Un usuario puede formar parte de un número ilimitado de conversaciones de chat.
  • Solo los participantes de la conversación pueden enviar o recibir mensajes, agregar participantes o quitarlos.
  • Los usuarios se agregan como participante a cualquier subproceso de chat que creen.

Acceso de usuarios

Azure Communication Services admite tres niveles de control de acceso de usuario mediante los tokens de chat. Consulte Identidad y tokens para obtener más información. Los participantes no tienen acceso de escritura a los mensajes enviados por otros participantes, lo que significa que solo el remitente del mensaje puede actualizar o eliminar sus mensajes enviados. Si otro participante intenta hacerlo, obtendrá un error.

Datos del chat

Azure Communication Services almacena los mensajes de chat indefinidamente hasta que el cliente los elimine. Los participantes de la conversación de chat pueden usar ListMessages para ver el historial de mensajes de una conversación determinada. Los usuarios que se quitan de un subproceso de chat pueden ver el historial de mensajes anterior, pero no pueden enviar ni recibir mensajes nuevos. El sistema no puede recuperar los mensajes eliminados accidentalmente. Para más información sobre los datos que se almacenan en el servicio de chat de Azure Communication Services, consulte la página de residencia y privacidad de datos.

En 2024, se presentará una nueva funcionalidad en la que los clientes deben elegir entre la retención de mensajes indefinida o la eliminación automática después de 90 días. Los mensajes existentes no se ven afectados.

Para los clientes que usan citas virtuales, consulte la privacidad del usuario de interoperabilidad de Teams para el almacenamiento de mensajes de chat en reuniones de Teams.

Límites de servicio

  • El número máximo de participantes permitido en una conversación de chat es de 250.
  • El tamaño máximo de mensaje permitido es de aproximadamente 28 KB.
  • En el caso de los subprocesos de chat con más de 20 participantes, no se admiten recibos de lectura y características de indicador de escritura.
  • Para escenarios de interoperabilidad de Teams, es el número de usuarios de Azure Communication Services, no usuarios de Teams, que deben estar por debajo de 20 para que se admita la característica de indicador de escritura.
  • En escenarios de interoperabilidad de Teams, el evento de indicador de escritura puede contener un nombre para mostrar en blanco cuando se envía desde el usuario de Teams.
  • En escenarios de interoperabilidad de Teams, no se admiten recibos de lectura para los usuarios de Teams.

Arquitectura del chat

Hay dos partes principales para la arquitectura de chat: 1) Servicio de confianza y 2) Aplicación cliente.

Diagram showing Communication Services' chat architecture.

  • Servicio de confianza: para administrar correctamente una sesión de chat, necesita un servicio que le ayude a conectarse a Communication Services mediante la cadena de conexión del recurso. Este servicio es responsable de la creación de conversaciones de chat, la adición y eliminación de participantes, y la emisión de tokens de acceso a los usuarios. Puede encontrar más información sobre los tokens de acceso en la guía de inicio rápido sobre tokens de acceso.
  • Aplicación cliente: la aplicación cliente se conecta al servicio de confianza y recibe los tokens de acceso utilizados por los usuarios para conectarse directamente a Communication Services. Después de crear el subproceso de chat y agregar usuarios como participantes, pueden usar la aplicación cliente para conectarse al subproceso de chat y enviar mensajes. Las notificaciones en tiempo real de la aplicación cliente se pueden usar para suscribirse a las actualizaciones de mensajes y subprocesos de otros participantes.

Creación de experiencias de chat inteligentes y con tecnología de inteligencia artificial

Puede usar los servicios de Azure AI con el servicio chat para crear casos de uso como:

  • Ayudar a un agente de soporte técnico a clasificar por prioridades los vales mediante la detección de una opinión negativa en un nuevo mensaje entrante de un cliente.
  • Genere un resumen al final de la conversación para enviar al cliente por correo electrónico con los pasos siguientes o realizar un seguimiento en una fecha posterior.
  • Agregue un Agente virtual de Power (PVA) en un canal de chat de Azure Communication Services con un bot de Azure y un bot de retransmisión.
  • Configure un bot para que se ejecute en uno o varios canales sociales junto con el canal chat.

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

Tipos de mensaje

Como parte del historial de mensajes, Chat comparte mensajes generados por el usuario y mensajes generados por el sistema.

Los mensajes del sistema se generan cuando

  • se actualiza un subproceso de chat
  • se agregó o quitó un participante
  • el tema del subproceso de chat se actualizó.

Cuando se llama a List Messages o Get Messages en un subproceso de chat, el resultado contiene ambos tipos de mensajes en orden cronológico. En el caso de los mensajes generados por el usuario, el tipo de mensaje se puede establecer en SendMessageOptions al enviar un mensaje a la conversación de chat. Si no se proporciona ningún valor, Communication Services tiene text como valor predeterminado el tipo . Es importante establecer este valor al enviar código HTML. Cuando html se especifica, Communication Services sanea el contenido para asegurarse de que se representa de forma segura en los dispositivos cliente.

  • text: mensaje de texto sin formato creado y enviado por el usuario como parte de una conversación de chat.
  • html: mensaje con formato HTML creado y enviado por el usuario como parte de una conversación de chat.

Tipos de mensajes del sistema:

  • participantAdded: mensaje del sistema que indica que se han agregado uno o varios participantes al subproceso de chat.
  • participantRemoved: mensaje del sistema que indica que se ha eliminado un miembro de la conversación del chat.
  • topicUpdated: mensaje del sistema que indica que el tema del subproceso se ha actualizado.

Notificaciones en tiempo real

El SDK de chat de JavaScript admite notificaciones en tiempo real. Esta característica permite a los clientes escuchar actualizaciones y mensajes entrantes en tiempo real de Communication Services en una conversación de chat sin tener que sondear las API.

La aplicación cliente se puede suscribir a los siguientes eventos:

  • chatMessageReceived: cuando un participante envía un mensaje nuevo a una conversación de chat.
  • chatMessageEdited: cuando se edita un mensaje en una conversación de chat.
  • chatMessageDeleted: cuando se elimina un mensaje en una conversación de chat.
  • typingIndicatorReceived: cuando otro participante envía un indicador de escritura a la conversación de chat.
  • readReceiptReceived: cuando otro participante envía una confirmación de lectura de un mensaje que ha leído.
  • chatThreadCreated : cuando un usuario de Communication Services crea un subproceso de chat.
  • chatThreadDeleted - cuando un usuario de Communication Services elimina un subproceso de chat.
  • chatThreadPropertiesUpdated: cuando se actualizan las propiedades de la conversación de chat; actualmente, solo se admite la actualización del tema de la conversación.
  • participantsAdded: cuando se agrega un usuario como participante a una conversación de chat.
  • participantsRemoved: cuando se quita un participante existente de la conversación de chat.
  • realTimeNotificationConnected: cuando la notificación en tiempo real está conectada.
  • realTimeNotificationDisconnected: cuando la notificación en tiempo real está desconectada.

Nota:

Las notificaciones en tiempo real no se usarán con aplicaciones de servidor.

Eventos de servidor

Esta característica permite que las aplicaciones de servidor escuchen eventos como cuando se envía un mensaje y cuando un participante se une o salga del chat. Las aplicaciones de servidor pueden reaccionar a estos eventos, agregar o quitar participantes al chat, archivar chats, realizar análisis y muchos otros escenarios para la orquestación. Para ver qué tipos de eventos de chat pueden usar los desarrolladores, consulte Eventos de servidor.

Notificaciones de inserción

Los SDK de chat de Android e iOS admiten notificaciones push. Para enviar notificaciones push para los mensajes perdidos por los usuarios mientras estaban fuera, conecte un recurso del Centro de notificaciones con el recurso de Communication Services para enviar notificaciones push. Al hacerlo, los usuarios de la aplicación notificarán a los usuarios sobre los mensajes y chats entrantes cuando la aplicación móvil no se esté ejecutando en primer plano.

IOS y Android SDK admiten el siguiente evento:

  • chatMessageReceived: cuando un participante envía un mensaje nuevo a una conversación de chat.

Android SDK admite eventos adicionales:

  • chatMessageEdited: cuando se edita un mensaje en una conversación de chat.
  • chatMessageDeleted: cuando se elimina un mensaje en una conversación de chat.
  • chatThreadCreated : cuando un usuario de Communication Services crea un subproceso de chat.
  • chatThreadDeleted - cuando un usuario de Communication Services elimina un subproceso de chat.
  • chatThreadPropertiesUpdated: cuando se actualizan las propiedades de la conversación de chat; actualmente, solo se admite la actualización del tema de la conversación.
  • participantsAdded: cuando se agrega un usuario como participante a una conversación de chat.
  • participantsRemoved: cuando se quita un participante existente de la conversación de chat.

Para obtener más información, consulte Notificaciones push.

Nota:

Actualmente, el envío de notificaciones de inserción de chat con el centro de notificaciones está disponible con carácter general en la versión 1.1.0 de Android y en la versión 1.3.0 de iOS.

Pasos siguientes

Puede que los siguientes documentos le resulten interesantes: