Share via


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 una comunicación de texto y datos almacenada de forma permanente. Otras características clave incluyen:

  • Identidad personalizada y direccionamiento: Azure Communication Services proporciona identidades genéricas para direccionar 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 conversación 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 un participante a cualquier conversación 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 identidades 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 los mensajes enviados. Si otro participante intenta hacerlo, obtendrá un error.

Datos del chat

Azure Communication Services almacena las conversaciones de chat según la directiva de retención de datos en vigor cuando se crea la conversación. Puede actualizar la directiva de retención si es necesario durante el período de tiempo de retención establecido. Después de eliminar una conversación de chat (por directiva o por una solicitud eliminar API), no se puede recuperar.

Importante

La funcionalidad descrita en este artículo se encuentra actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Puede elegir entre la retención de conversaciones indefinida, la eliminación automática entre 30 y 90 días a través de la directiva de retención en Crear API de conversación de chat, o eliminación inmediata mediante las API Eliminar mensaje de chat o Eliminar conversación de chat.

Las conversaciones creados antes de la nueva directiva de retención no se ven afectados a menos que cambie específicamente la directiva de esa conversación. Si envía una solicitud de soporte técnico para una conversación de chat eliminado más de 30 días después de que la directiva de retención haya eliminado esa conversación, ya no se puede recuperar y no hay información sobre esa conversación disponible. Si es necesario, abra una incidencia de soporte técnico lo antes posible en el período de 30 días después de crear una conversación para que podamos ayudarle.

Los participantes de la conversación de chat pueden usar ListMessages para ver el historial de mensajes de una conversación determinada. La API de ListMessages no puede devolver el historial de una conversación si se elimina la conversación. Los usuarios que se quitan de una conversación de chat pueden ver el historial de mensajes anterior, pero no enviar ni recibir nuevos mensajes. El sistema no puede recuperar los mensajes eliminados accidentalmente. Para obtener más información sobre los datos que almacena en el servicio de chat de Azure Communication Services, vea la página de residencia de datos y privacidad.

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 las conversaciones de chat con más de 20 participantes, no se admiten las características de confirmación de lectura e 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.
  • Al crear una conversación de chat, puede establecer la directiva de retención entre 30 y 90 días.
  • 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.

Diagrama que muestra la arquitectura de chat de Communication Services.

  • 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. Para más información, consulte el inicio rápido Inicio rápido: Creación y administración de tokens de acceso.
  • Aplicación cliente: la aplicación cliente se conecta al servicio de confianza y recibe los tokens de acceso que los usuarios necesitan para conectarse directamente a Communication Services. Después de que haya creado la conversación de chat y agregado participantes, estos pueden usar la aplicación cliente para conectarse a la conversación de chat y enviar mensajes. Los participantes pueden usar notificaciones en tiempo real en su aplicación cliente para suscribirse a las actualizaciones de los mensajes y la conversación por parte de otros participantes.

Creación de experiencias de chat inteligentes basadas en inteligencia artificial

Puede usar los servicios de Azure AI con el servicio de 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 realice un seguimiento en una fecha posterior.
  • Agregue un Power Virtual Agent(PVA) en un canal de Azure Communication Services Chat con Azure Bot y un bot de retransmisión.
  • Configure un bot para que se ejecute en uno o varios canales sociales junto con el canal de chat.

Diagrama que muestra que Azure Communication Services se puede emparejar con los servicios de Azure AI.

Tipos de mensaje

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

Los mensajes del sistema se generan cuando

  • se actualiza una conversación de chat
  • se agrega o quita un participante
  • se actualiza el tema de la conversación de chat.

Al llamar a List Messages o Get Messages en una conversación 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 establece como valor predeterminado el tipo text. Es importante establecer este valor al enviar código HTML. Cuando se especifica html, Communication Services corrige el contenido para asegurarse de que se represente 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 hay uno o varios miembros en la conversación del 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 está actualizado.

Notificaciones en tiempo real

El SDK de chat para 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 una conversación de chat.
  • chatThreadDeleted: cuando un usuario de Communication Services elimina una conversación 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 del 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 sale 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 que los participantes no han leído mientras estaban fuera, conecte un recurso del Centro de notificaciones con el recurso de Communication Services para enviar notificaciones push. Al hacerlo, se notifica a los participantes de la aplicación sobre los mensajes y chats entrantes cuando la aplicación móvil no se ejecuta en primer plano.

En IOS y Android SDK admite el evento siguiente:

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

Android SDK admite eventos adicionales:

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

Para 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