Azure Communication Chat-klientbibliotek för JavaScript – version 1.5.3
Med Azure Communication Services for Chat kan utvecklare lägga till chattfunktioner i sin app. Använd det här klientbiblioteket för att hantera chatttrådar och deras användare och skicka och ta emot chattmeddelanden.
Läs mer om Azure Communication Services här
Komma igång
Förutsättningar
- En Azure-prenumeration.
- En befintlig Communication Services-resurs. Om du behöver skapa resursen kan du använda Azure Portal, Azure PowerShelleller Azure CLI-.
- Node.js
Installera
npm install @azure/communication-chat
Stöd för webbläsare
JavaScript-paket
Om du vill använda det här klientbiblioteket i webbläsaren måste du först använda en bundler. Mer information om hur du gör detta finns i vår paketeringsdokumentation.
I rollup.config.js
lägger du till följande anpassade namnexporter i cjs
plugin-program.
cjs({
namedExports: {
events: ["EventEmitter"],
"@azure/communication-signaling": ["CommunicationSignalingClient", "SignalingClient"],
"@opentelemetry/api": ["CanonicalCode", "SpanKind", "TraceFlags"]
}
})
Viktiga begrepp
En chattkonversation representeras av en tråd. Varje användare i tråden kallas för chattdeltagare. Chattdeltagare kan chatta med varandra privat i en 1:1-chatt eller samlas i en 1:N-gruppchatt. Användarna får också uppdateringar nästan i realtid för när andra skriver och när de har läst meddelandena.
ChatClient
ChatClient
är det primära gränssnittet för utvecklare som använder det här klientbiblioteket. Den innehåller asynkrona metoder för att skapa och ta bort en tråd.
ChatThreadClient
ChatThreadClient
tillhandahåller asynkrona metoder för att utföra åtgärderna för meddelande- och chattdeltagare i chatttråden.
Exempel
Initiera ChatClient
Använd resurs-URL och användaråtkomsttoken för att initiera chattklienten.
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);
Skapa en tråd med två användare
Använd metoden createThread
för att skapa en chatttråd.
createChatThreadRequest
används för att beskriva trådbegäran:
- Använd
topic
för att ge ett trådämne;
createChatThreadOptions
används för att ange valfria params för att skapa tråden:
- Använd
participants
för att visa en lista över chattdeltagarna som ska läggas till i tråden. - Använd
idempotencyToken
för att ange en upprepningsbar begäran
createChatThreadResult
returneras resultatet från skapandet av en tråd. Den innehåller en chatThread
som är tråden som skapades, samt en errors
egenskap som innehåller information om ogiltiga deltagare om de inte kunde läggas till i tråden.
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;
Skapa en ChatThreadClient
Med ChatThreadClient kan du utföra åtgärder som är specifika för en chatttråd, till exempel uppdatera chatttrådsämnet, skicka ett meddelande, lägga till deltagare i chatttråden osv.
Du kan initiera en ny ChatThreadClient med hjälp av getChatThreadClient
-metoden för ChatClient med ett befintligt tråd-ID:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
Skicka ett meddelande till tråden
Använd sendMessage
metod för att skicka ett meddelande till en tråd som identifieras av threadId.
sendMessageRequest
används för att beskriva meddelandebegäran:
- Använd
content
för att ange innehållet i chattmeddelandet.
sendMessageOptions
används för att beskriva åtgärdens valfria params:
- Använd
senderDisplayName
för att ange avsändarens visningsnamn. - Använd
type
för att ange meddelandetypen, till exempel "text" eller "html" ;
sendChatMessageResult
är resultatet som returneras från att skicka ett meddelande innehåller det ett ID, vilket är meddelandets unika ID.
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;
Ta emot meddelanden från en tråd
Med realtidssignalering kan du prenumerera på att lyssna efter nya inkommande meddelanden och uppdatera de aktuella meddelandena i minnet i enlighet med detta.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
Du kan också hämta chattmeddelanden genom att avsöka metoden listMessages
med angivna intervall.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
Lägga till användare i en tråd
När en tråd har skapats kan du sedan lägga till och ta bort användare från den tråden. Genom att lägga till användare ger du dem åtkomst för att kunna skicka meddelanden till tråden. Du måste börja med att hämta en ny åtkomsttoken och identitet för den användaren. Användaren behöver den åtkomsttoken för att initiera chattklienten. Mer information om token här: Autentisera till Azure Communication Services
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Ta bort användare från en tråd
På samma sätt som ovan kan du också ta bort användare från en tråd. För att kunna ta bort måste du spåra ID:t för de deltagare som du har lagt till.
await chatThreadClient.removeParticipant({ communicationUserId: '<MEMBER_ID>' });
Prenumerera på anslutningsstatus för realtidsmeddelanden
Med prenumeration på händelser realTimeNotificationConnected
och realTimeNotificationDisconnected
kan du veta när anslutningen till anropsservern är aktiv.
// 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
});
Felsökning
Nästa steg
I den här snabbstarten lärde du dig att:
- Skapa en chattklient
- Skapa en tråd med 2 användare
- Skicka ett meddelande till tråden
- Ta emot meddelanden från en tråd
- Ta bort användare från en tråd
Bidragande
Om du vill bidra till det här biblioteket kan du läsa bidragsguide för att lära dig mer om hur du skapar och testar koden.
Azure SDK for JavaScript