Megosztás a következőn keresztül:


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

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.jsadja 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.