Azure Communication Chat ügyfélkódtár JavaScripthez – 1.5.0-s verzió
Azure Communication Services a csevegéshez lehetővé teszi a fejlesztők számára, hogy csevegőfunkciókat adjanak hozzá az alkalmazásukhoz. Ezzel az ügyfélkódtáral kezelheti a csevegési szálakat és a felhasználóikat, valamint csevegőüzeneteket küldhet és fogadhat.
További információ a Azure Communication Services itt
Első lépések
Előfeltételek
- Egy Azure-előfizetés.
- Egy meglévő Communication Services-erőforrás. Ha létre kell hoznia az erőforrást, használhatja az Azure Portalt, a Azure PowerShell vagy az Azure CLI-t.
- Node.js
Telepítés
npm install @azure/communication-chat
Böngészőtámogatás
JavaScript-csomag
Ahhoz, hogy ezt az ügyfélkódtárat a böngészőben használhassa, először egy kötegelőt kell használnia. Ennek módjáról a csomagkontraszt dokumentációjában talál további információt.
A fájlban rollup.config.js
adja hozzá a következő testreszabott névexportálásokat a beépülő modulban cjs
.
cjs({
namedExports: {
events: ["EventEmitter"],
"@azure/communication-signaling": ["CommunicationSignalingClient", "SignalingClient"],
"@opentelemetry/api": ["CanonicalCode", "SpanKind", "TraceFlags"]
}
})
Fő fogalmak
A csevegéseket egy szál képviseli. A beszélgetés minden felhasználóját csevegő résztvevőnek nevezzük. A csevegés résztvevői privát módon cseveghetnek egy 1:1-ás csevegésben, vagy egy 1:N csoportos csevegésben. A felhasználók közel valós idejű frissítéseket kapnak arról is, hogy mások mikor gépelnek, és mikor olvasták el az üzeneteket.
ChatClient
ChatClient
az ügyfélkódtárat használó fejlesztők elsődleges felülete. Aszinkron metódusokat biztosít egy szál létrehozásához és törléséhez.
ChatThreadClient
ChatThreadClient
aszinkron metódusokat biztosít az üzenet és a csevegés résztvevőinek a csevegési szálon belüli műveleteihez.
Példák
ChatClient inicializálása
A csevegőügyfél inicializálásához használja az erőforrás URL-címét és a felhasználói hozzáférési jogkivonatot.
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);
Szál létrehozása két felhasználóval
A metódus használatával createThread
hozzon létre egy csevegési szálat.
createChatThreadRequest
A szálkérés leírására szolgál:
- Tématémakör adására használható
topic
;
createChatThreadOptions
A a szál létrehozásához a választható paraméterek beállítására szolgál:
- A használatával
participants
listázhatja a beszélgetéshez hozzáadandó csevegési résztvevőket; - Ismétlődő kérés megadására használható
idempotencyToken
createChatThreadResult
a szál létrehozásakor visszaadott eredmény. Tartalmaz egy chatThread
, a létrehozott szálat, valamint egy errors
tulajdonságot, amely az érvénytelen résztvevők adatait tartalmazza, ha nem adták hozzá őket a szálhoz.
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;
ChatThreadClient létrehozása
A ChatThreadClient lehetővé teszi a csevegési szálra vonatkozó műveletek végrehajtását, például a csevegési beszélgetés témakörének frissítését, üzenet küldését, résztvevők hozzáadását a csevegési szálhoz stb.
Új ChatThreadClient inicializálásához használja a getChatThreadClient
ChatClient metódusát egy meglévő szálazonosítóval:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
Üzenet küldése a szálnak
A metódussal sendMessage
üzenetet küldhet a threadId által azonosított szálnak.
sendMessageRequest
az üzenetkérelem leírására szolgál:
- A csevegőüzenet tartalmának megadására szolgál
content
;
sendMessageOptions
a művelet nem kötelező paramétereinek leírására szolgál:
- A feladó megjelenítendő nevének megadására használható
senderDisplayName
; - Az üzenet típusának megadására használható
type
, például "text" vagy "html";
sendChatMessageResult
az üzenet küldésekor visszaadott eredmény, amely egy azonosítót tartalmaz, amely az üzenet egyedi azonosítója.
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;
Üzenetek fogadása egy szálról
Valós idejű jelzéssel feliratkozhat az új bejövő üzenetek figyelésére, és ennek megfelelően frissítheti az aktuális üzeneteket a memóriában.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
Másik lehetőségként a csevegőüzeneteket a metódus megadott időközönkénti listMessages
lekérdezésével is lekérheti.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
Felhasználók hozzáadása szálhoz
Miután létrehozott egy szálat, hozzáadhat és eltávolíthat felhasználókat az adott szálból. Felhasználók hozzáadásával hozzáférést ad nekik, hogy üzeneteket tudjanak küldeni a beszélgetésbe. Először le kell kérnie egy új hozzáférési jogkivonatot és identitást az adott felhasználóhoz. A felhasználónak szüksége lesz erre a hozzáférési jogkivonatra a csevegőügyfél inicializálásához. További információ a jogkivonatokról: Hitelesítés Azure Communication Services
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Felhasználók eltávolítása egy szálból
A fentiekhez hasonlóan a felhasználókat is eltávolíthatja egy szálból. Az eltávolításhoz nyomon kell követnie a hozzáadott résztvevők azonosítóit.
await chatThreadClient.removeParticipant({ communicationUserId: '<MEMBER_ID>' });
Feliratkozás valós idejű értesítések kapcsolati állapotára
Előfizetés eseményekre realTimeNotificationConnected
, és realTimeNotificationDisconnected
lehetővé teszi, hogy tudja, mikor aktív a kapcsolat a híváskiszolgálóval.
// 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
});
Hibaelhárítás
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan:
- Csevegőügyfél létrehozása
- Szál létrehozása 2 felhasználóval
- Üzenet küldése a szálnak
- Üzenetek fogadása egy szálról
- Felhasználók eltávolítása egy szálból
Közreműködés
Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód buildeléséhez és teszteléséhez.
Azure SDK for JavaScript
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: