Libreria client di Chat di comunicazione di Azure per JavaScript - versione 1.5.0
Servizi di comunicazione di Azure per Chat consente agli sviluppatori di aggiungere funzionalità di chat all'app. Usare questa libreria client per gestire i thread di chat e i relativi utenti e inviare e ricevere messaggi di chat.
Altre informazioni su Servizi di comunicazione di Azure qui
Introduzione
Prerequisiti
- Una sottoscrizione di Azure.
- Risorsa servizi di comunicazione esistente. Se è necessario creare la risorsa, è possibile usare il portale di Azure, il Azure PowerShell o l'interfaccia della riga di comando di Azure.
- Node.js
Installazione
npm install @azure/communication-chat
Supporto browser
JavaScript Bundle
Per usare questa libreria client nel browser, è prima necessario usare un bundler. Per informazioni dettagliate su come eseguire questa operazione, vedere la documentazione di raggruppamento.
In aggiungere le esportazioni di nomi personalizzati seguenti nel plug-inrollup.config.js
cjs
.
cjs({
namedExports: {
events: ["EventEmitter"],
"@azure/communication-signaling": ["CommunicationSignalingClient", "SignalingClient"],
"@opentelemetry/api": ["CanonicalCode", "SpanKind", "TraceFlags"]
}
})
Concetti chiave
Una conversazione di chat è rappresentata da un thread. Ogni utente nel thread viene chiamato partecipante alla chat. I partecipanti alla chat possono chattare tra loro privatamente in una chat di 1:1 o huddle up in una chat di gruppo 1:N. Gli utenti ottengono anche aggiornamenti quasi in tempo reale per quando altri digitano e quando hanno letto i messaggi.
ChatClient
ChatClient
è l'interfaccia primaria per gli sviluppatori che usano questa libreria client. Fornisce metodi asincroni per creare ed eliminare un thread.
ChatThreadClient
ChatThreadClient
fornisce metodi asincroni per eseguire le operazioni dei partecipanti a messaggi e chat all'interno del thread di chat.
Esempio
Inizializzare ChatClient
Usare l'URL della risorsa e il token di accesso utente per inizializzare il client 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);
Creare un thread con due utenti
Usare il metodo createThread
per creare un thread di chat.
createChatThreadRequest
viene usato per descrivere la richiesta di thread:
- Usare
topic
per assegnare un argomento thread;
createChatThreadOptions
viene usato per impostare i params facoltativi per creare il thread:
- Usare
participants
per elencare i partecipanti alla chat da aggiungere al thread; - Usare
idempotencyToken
per specificare una richiesta ripetibile
createChatThreadResult
è il risultato restituito dalla creazione di un thread. Contiene un chatThread
thread creato, nonché una errors
proprietà che conterrà informazioni sui partecipanti non validi se non è stato possibile aggiungere al 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;
Creare un chatThreadClient
ChatThreadClient consente di eseguire operazioni specifiche di un thread di chat, ad esempio aggiornare l'argomento del thread di chat, inviare un messaggio, aggiungere partecipanti al thread di chat e così via.
È possibile inizializzare un nuovo ChatThreadClient usando il getChatThreadClient
metodo di ChatClient con un ID thread esistente:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
Inviare un messaggio al thread
Usare sendMessage
il metodo per inviare un messaggio a un thread identificato da threadId.
sendMessageRequest
viene usato per descrivere la richiesta del messaggio:
- Usare
content
per fornire il contenuto del messaggio di chat.
sendMessageOptions
viene usato per descrivere le params facoltative dell'operazione:
- Usare
senderDisplayName
per specificare il nome visualizzato del mittente. - Usare
type
per specificare il tipo di messaggio, ad esempio 'text' o 'html';
sendChatMessageResult
è il risultato restituito dall'invio di un messaggio, contiene un ID, ovvero l'ID univoco del messaggio.
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;
Ricevere messaggi da un thread
Con la segnalazione in tempo reale, è possibile sottoscrivere l'ascolto dei nuovi messaggi in arrivo e aggiornare i messaggi correnti in memoria di conseguenza.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
In alternativa, è possibile recuperare i messaggi di chat eseguendo il polling del metodo listMessages
a intervalli specificati.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
Aggiungere utenti a un thread
Dopo aver creato un thread, è possibile aggiungere e rimuovere gli utenti da tale thread. Aggiungendo utenti, si concede loro l'accesso per poter inviare messaggi al thread. Per iniziare, è necessario ottenere un nuovo token di accesso e un'identità per tale utente. L'utente dovrà usare il token di accesso per inizializzare il client di chat. Altre informazioni sui token qui: Eseguire l'autenticazione a Servizi di comunicazione di Azure
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Rimuovere utenti da un thread
Analogamente a quanto sopra, è anche possibile rimuovere gli utenti da un thread. Per rimuovere, sarà necessario tenere traccia degli ID dei partecipanti aggiunti.
await chatThreadClient.removeParticipant({ communicationUserId: '<MEMBER_ID>' });
Sottoscrivere lo stato di connessione delle notifiche in tempo reale
Sottoscrizione agli eventi realTimeNotificationConnected
e realTimeNotificationDisconnected
consente di sapere quando la connessione al server di chiamata è attiva.
// 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
});
Risoluzione dei problemi
Passaggi successivi
In questa guida di avvio rapido si è appreso come:
- Creare un client di chat
- Creare un thread con 2 utenti
- Inviare un messaggio al thread
- Ricevere messaggi da un thread
- Rimuovere utenti da un thread
Contributo
Per contribuire a questa libreria, leggere la guida ai contributi per altre informazioni su come compilare e testare il codice.
Azure SDK for JavaScript
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per