Biblioteca de clientes do Chat de Comunicação do Azure para JavaScript – versão 1.5.4
Os Serviços de Comunicação do Azure para Chat permitem que os desenvolvedores adicionem recursos de chat ao aplicativo. Use essa biblioteca de clientes para gerenciar threads de chat e seus usuários e enviar e receber mensagens de chat.
Leia mais sobre os Serviços de Comunicação do Azure aqui
Introdução
Pré-requisitos
- Uma assinatura do Azure.
- Um recurso existente dos Serviços de Comunicação. Se você precisar criar o recurso, poderá usar o Portal do Azure, o do Azure PowerShell ou a CLI do Azure .
- Node.js
Instalar
npm install @azure/communication-chat
Suporte ao navegador
Pacote JavaScript
Para usar essa biblioteca de clientes no navegador, primeiro você precisa usar um empacotador. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agrupamento .
Em rollup.config.js
, adicione as seguintes exportações de nome personalizado no plug-in cjs
.
cjs({
namedExports: {
events: ["EventEmitter"],
"@azure/communication-signaling": ["CommunicationSignalingClient", "SignalingClient"],
"@opentelemetry/api": ["CanonicalCode", "SpanKind", "TraceFlags"]
}
})
Principais conceitos
Uma conversa de chat é representada por um thread. Cada usuário no thread é chamado de participante do chat. Os participantes do chat podem conversar entre si em particular em um chat 1:1 ou se amontoar em um chat em grupo 1:N. Os usuários também recebem atualizações quase em tempo real para quando outras pessoas estão digitando e quando leem as mensagens.
ChatClient
ChatClient
é a interface principal para desenvolvedores que usam essa biblioteca de clientes. Ele fornece métodos assíncronos para criar e excluir um thread.
ChatThreadClient
ChatThreadClient
fornece métodos assíncronos para executar as operações de mensagens e de participantes de chat dentro do thread de chat.
Exemplos
Inicializar o ChatClient
Use a URL do recurso e o token de acesso do usuário para inicializar o 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);
Criar um thread com dois usuários
Use o método createThread
para criar um thread de chat.
createChatThreadRequest
é usado para descrever a solicitação de thread:
- Use
topic
para fornecer um tópico de thread;
createChatThreadOptions
é usado para definir os parâmetros opcionais para criar o thread:
- Use
participants
para listar os participantes do chat a serem adicionados ao thread; - Usar
idempotencyToken
para especificar uma solicitação repetível
createChatThreadResult
é o resultado retornado da criação de um thread. Ele contém um chatThread
que é o thread que foi criado, bem como uma propriedade errors
que conterá informações sobre participantes inválidos se eles não tiverem sido adicionados ao thread.
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;
Criar um ChatThreadClient
O ChatThreadClient permitirá que você execute operações específicas a um thread de chat, como atualizar o tópico do thread de chat, enviar uma mensagem, adicionar participantes ao thread de chat etc.
Você pode inicializar um novo ChatThreadClient usando o método getChatThreadClient
do ChatClient com uma ID de thread existente:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
Enviar uma mensagem para o thread
Use sendMessage
método para enviar uma mensagem para um thread identificado por threadId.
sendMessageRequest
é usado para descrever a solicitação de mensagem:
- Use
content
para fornecer o conteúdo da mensagem de chat;
sendMessageOptions
é usado para descrever os parâmetros opcionais da operação:
- Use
senderDisplayName
para especificar o nome de exibição do remetente; - Use
type
para especificar o tipo de mensagem, como 'text' ou 'html' ;
sendChatMessageResult
é o resultado retornado do envio de uma mensagem, ele contém uma ID, que é a ID exclusiva da mensagem.
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;
Receber mensagens de um thread
Com a sinalização em tempo real, você pode assinar para ouvir novas mensagens de entrada e atualizar as mensagens atuais na memória adequadamente.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
Como alternativa, você pode recuperar mensagens de chat sondando o método listMessages
em intervalos especificados.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
Adicionar usuários a um thread
Depois que um thread é criado, você pode adicionar e remover usuários desse thread. Ao adicionar usuários, você dá a eles acesso para poder enviar mensagens para o thread. Você precisará começar obtendo um novo token de acesso e uma identidade para esse usuário. O usuário precisará desse token de acesso para inicializar seu cliente de chat. Mais informações sobre tokens aqui: Autenticar nos Serviços de Comunicação do Azure
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Remover usuários de um thread
Semelhante ao indicado acima, você também pode remover usuários de um thread. Para remover, você precisará acompanhar as IDs dos participantes adicionados.
await chatThreadClient.removeParticipant({ communicationUserId: '<MEMBER_ID>' });
Assinar o status da conexão de notificações em tempo real
A assinatura de eventos realTimeNotificationConnected
e realTimeNotificationDisconnected
permite que você saiba quando a conexão com o servidor de chamada está ativa.
// 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
});
Solucionando problemas
Próximas etapas
Neste início rápido, você aprendeu a:
- Criar um cliente de chat
- Criar um thread com dois usuários
- Enviar uma mensagem para o thread
- Receber mensagens de um thread
- Remover usuários de um thread
Contribuindo
Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Azure SDK for JavaScript