Biblioteca cliente de Azure Communication Chat para JavaScript: versión 1.5.0
Azure Communication Services para chat permite a los desarrolladores agregar funcionalidades de chat a su aplicación. Use esta biblioteca cliente para administrar subprocesos de chat y sus usuarios, y enviar y recibir mensajes de chat.
Obtenga más información sobre Azure Communication Services aquí
Introducción
Requisitos previos
- Una suscripción de Azure.
- Un recurso de Communication Services existente. Si necesita crear el recurso, puede usar Azure Portal, el Azure PowerShell o la CLI de Azure.
- Node.js
Instalación de
npm install @azure/communication-chat
Compatibilidad con exploradores
Paquete de JavaScript
Para usar esta biblioteca cliente en el explorador, primero debe usar un agrupador. Para más información sobre cómo hacerlo, consulte nuestra documentación de agrupación.
En rollup.config.js
, agregue las siguientes exportaciones de nombres personalizadas en cjs
el complemento.
cjs({
namedExports: {
events: ["EventEmitter"],
"@azure/communication-signaling": ["CommunicationSignalingClient", "SignalingClient"],
"@opentelemetry/api": ["CanonicalCode", "SpanKind", "TraceFlags"]
}
})
Conceptos clave
Una conversación de chat se representa mediante un subproceso. Cada usuario del subproceso se denomina participante de chat. Los participantes del chat pueden chatear entre sí de forma privada en un chat de 1:1 o en un chat de grupo de 1:N. Los usuarios también obtienen actualizaciones casi en tiempo real para cuando otros escriben y cuando han leído los mensajes.
ChatClient
ChatClient
es la interfaz principal para los desarrolladores que usan esta biblioteca cliente. Proporciona métodos asincrónicos para crear y eliminar un subproceso.
ChatThreadClient
ChatThreadClient
proporciona métodos asincrónicos para realizar las operaciones de los participantes del mensaje y del chat en el subproceso de chat.
Ejemplos
Inicializar ChatClient
Use la dirección URL de recursos y el token de acceso de usuario para inicializar el cliente de chat.
import { ChatClient } from '@azure/communication-chat';
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
// Your unique Azure Communication service endpoint
const endpointUrl = '<ENDPOINT>';
const userAccessToken = '<USER_ACCESS_TOKEN>';
const tokenCredential = new AzureCommunicationTokenCredential(userAccessToken);
const chatClient = new ChatClient(endpointUrl, tokenCredential);
Creación de un subproceso con dos usuarios
Use el método createThread
para crear un subproceso de chat.
createChatThreadRequest
se usa para describir la solicitud de subproceso:
- Use
topic
para dar un tema de subproceso;
createChatThreadOptions
se usa para establecer los parámetros opcionales para crear el subproceso:
- Use
participants
para enumerar los participantes del chat que se van a agregar al subproceso; - Usar
idempotencyToken
para especificar una solicitud repetible
createChatThreadResult
es el resultado devuelto por la creación de una conversación. Contiene un chatThread
que es el subproceso que se creó, así como una errors
propiedad que contendrá información sobre los participantes no válidos si no se pudieron agregar al subproceso.
const createChatThreadRequest = {
topic: "Hello, World!"
};
const createChatThreadOptions = {
participants: [
{
id: { communicationUserId: '<USER_ID>' },
displayName: '<USER_DISPLAY_NAME>'
}
]
};
const createChatThreadResult = await chatClient.createChatThread(
createChatThreadRequest,
createChatThreadOptions
);
const threadId = createChatThreadResult.chatThread.id;
Creación de un chatThreadClient
ChatThreadClient le permitirá realizar operaciones específicas de un subproceso de chat, como actualizar el tema del subproceso de chat, enviar un mensaje, agregar participantes al subproceso de chat, etc.
Puede inicializar un nuevo ChatThreadClient mediante el getChatThreadClient
método de ChatClient con un identificador de subproceso existente:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
Envío de un mensaje al subproceso
Utilice el método sendMessage
para enviar un mensaje a un subproceso identificado mediante threadId.
sendMessageRequest
se utiliza para describir la solicitud del mensaje:
- Utilice
content
para proporcionar el contenido del mensaje de chat.
sendMessageOptions
se usa para describir los parámetros opcionales de la operación:
- Utilice
senderDisplayName
para especificar el nombre para mostrar del remitente. - Use
type
para especificar el tipo de mensaje, como "texto" o "html".
sendChatMessageResult
es el resultado devuelto al enviar un mensaje, contiene un identificador, que es el identificador único del mensaje.
const sendMessageRequest =
{
content: 'Hello Geeta! Can you share the deck for the conference?'
};
const sendMessageOptions:SendMessageOptions = {
senderDisplayName: "Jack",
type: "text"
};
const sendChatMessageResult = await chatThreadClient.sendMessage(sendMessageRequest, sendMessageOptions);
const messageId = sendChatMessageResult.id;
Recepción de mensajes de un subproceso
Con la señalización en tiempo real, puede suscribirse para escuchar nuevos mensajes entrantes y actualizar los mensajes actuales en la memoria en consecuencia.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
También puede recuperar mensajes de chat mediante el sondeo del método listMessages
a intervalos especificados.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
Agregar usuarios a un subproceso
Una vez creado un subproceso, puede agregar y quitar usuarios de ese subproceso. Al agregar usuarios, se les concede acceso para poder enviar mensajes al subproceso. Tendrá que empezar obteniendo un nuevo token de acceso e identidad para ese usuario. El usuario necesitará ese token de acceso para poder inicializar su cliente de chat. Más información sobre los tokens aquí: Autenticación en Azure Communication Services
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Eliminación de usuarios de un subproceso
De forma similar a la anterior, también puede quitar usuarios de un subproceso. Para eliminar, deberá realizar un seguimiento de los identificadores de los participantes que haya agregado.
await chatThreadClient.removeParticipant({ communicationUserId: '<MEMBER_ID>' });
Suscripción al estado de conexión de las notificaciones en tiempo real
La suscripción a eventos realTimeNotificationConnected
y realTimeNotificationDisconnected
permite saber cuándo está activa la conexión al servidor de llamadas.
// subscribe to realTimeNotificationConnected event
chatClient.on('realTimeNotificationConnected', () => {
console.log("Real time notification is now connected!");
// your code here
});
// subscribe to realTimeNotificationDisconnected event
chatClient.on('realTimeNotificationDisconnected', () => {
console.log("Real time notification is now disconnected!");
// your code here
});
Solución de problemas
Pasos siguientes
En este tutorial, ha aprendido a hacer lo siguiente:
- Creación de un cliente de chat
- Creación de un subproceso con 2 usuarios
- Envío de un mensaje al subproceso
- Recepción de mensajes de un subproceso
- Eliminación de usuarios de un subproceso
Contribuciones
Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.
Azure SDK for JavaScript
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de