Pustaka klien Azure Communication Chat untuk JavaScript - versi 1.5.0
Azure Communication Services untuk Obrolan memungkinkan pengembang menambahkan kemampuan obrolan ke aplikasi mereka. Gunakan pustaka klien ini untuk mengelola utas obrolan dan pengguna mereka, serta mengirim dan menerima pesan obrolan.
Baca selengkapnya tentang Azure Communication Services di sini
Memulai
Prasyarat
- Langganan Azure.
- Sumber daya Communication Services yang ada. Jika Anda perlu membuat sumber daya, Anda dapat menggunakan Portal Microsoft Azure, Azure PowerShell, atau Azure CLI.
- Node.js
Menginstal
npm install @azure/communication-chat
Dukungan browser
Bundel JavaScript
Untuk menggunakan pustaka klien ini di browser, pertama-tama Anda perlu menggunakan bunder. Untuk detail tentang cara melakukan ini, silakan lihat dokumentasi bundling kami.
Di rollup.config.js
, tambahkan ekspor nama yang disesuaikan berikut di cjs
plugin.
cjs({
namedExports: {
events: ["EventEmitter"],
"@azure/communication-signaling": ["CommunicationSignalingClient", "SignalingClient"],
"@opentelemetry/api": ["CanonicalCode", "SpanKind", "TraceFlags"]
}
})
Konsep utama
Percakapan obrolan diwakili oleh utas. Setiap pengguna di utas disebut peserta obrolan. Peserta obrolan dapat mengobrol satu sama lain secara pribadi dalam obrolan 1:1 atau berkumpul di obrolan grup 1:N. Pengguna juga mendapatkan pembaruan hampir real time ketika orang lain mengetik dan ketika mereka telah membaca pesan.
ChatClient
ChatClient
adalah antarmuka utama untuk pengembang yang menggunakan pustaka klien ini. Ini menyediakan metode asinkron untuk membuat dan menghapus utas.
ChatThreadClient
ChatThreadClient
menyediakan metode asinkron untuk melakukan operasi peserta pesan dan obrolan dalam utas obrolan.
Contoh
Menginisialisasi ChatClient
Gunakan url sumber daya dan token akses pengguna untuk menginisialisasi klien obrolan.
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);
Membuat utas dengan dua pengguna
Gunakan metode createThread
untuk membuat utas obrolan.
createChatThreadRequest
digunakan untuk mendeskripsikan permintaan utas:
- Gunakan
topic
untuk memberikan topik utas;
createChatThreadOptions
digunakan untuk mengatur param opsional untuk membuat utas:
- Gunakan
participants
untuk mencantumkan peserta obrolan untuk ditambahkan ke utas; - Gunakan
idempotencyToken
untuk menentukan permintaan yang dapat diulang
createChatThreadResult
adalah hasil yang dikembalikan dari pembuatan utas. Ini berisi chatThread
yang merupakan utas yang dibuat, serta errors
properti yang akan berisi informasi tentang peserta yang tidak valid jika mereka gagal ditambahkan ke utas.
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;
Membuat ChatThreadClient
ChatThreadClient akan memungkinkan Anda melakukan operasi khusus untuk utas obrolan, seperti memperbarui topik utas obrolan, mengirim pesan, menambahkan peserta ke utas obrolan, dll.
Anda dapat menginisialisasi ChatThreadClient baru menggunakan getChatThreadClient
metode ChatClient dengan id utas yang ada:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
Mengirim pesan ke utas
Gunakan metode sendMessage
untuk mengirim pesan ke utas yang diidentifikasi oleh threadId.
sendMessageRequest
digunakan untuk menjelaskan permintaan pesan:
- Gunakan
content
untuk menyediakan konten pesan obrolan;
sendMessageOptions
digunakan untuk menjelaskan param opsional operasi:
- Gunakan
senderDisplayName
untuk menentukan nama tampilan pengirim; - Gunakan
type
untuk menentukan jenis pesan, seperti 'text' atau 'html' ;
sendChatMessageResult
adalah hasil yang dikembalikan dari mengirim pesan, berisi ID, yang merupakan ID unik pesan.
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;
Menerima pesan dari utas
Dengan sinyal real time, Anda dapat berlangganan untuk mendengarkan pesan masuk baru dan memperbarui pesan saat ini di memori.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
Atau, Anda dapat mengambil pesan obrolan dengan polling metode listMessages
pada interval tertentu.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
Menambahkan Pengguna ke utas
Setelah utas dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna dari utas tersebut. Dengan menambahkan pengguna, Anda memberi mereka akses untuk dapat mengirim pesan ke utas. Anda harus mulai dengan mendapatkan token akses dan identitas baru untuk pengguna tersebut. Pengguna akan membutuhkan token akses tersebut untuk menginisialisasi klien obrolan mereka. Informasi selengkapnya tentang token di sini: Mengautentikasi ke Azure Communication Services
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Menghapus Pengguna dari utas
Mirip dengan di atas, Anda juga dapat menghapus pengguna dari utas. Untuk menghapus, Anda harus melacak ID peserta yang telah Anda tambahkan.
await chatThreadClient.removeParticipant({ communicationUserId: '<MEMBER_ID>' });
Berlangganan status koneksi pemberitahuan real time
Berlangganan peristiwa realTimeNotificationConnected
dan realTimeNotificationDisconnected
memungkinkan Anda mengetahui kapan koneksi ke server panggilan aktif.
// 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
});
Pemecahan Masalah
Langkah berikutnya
Dalam mulai cepat ini, Anda mempelajari cara:
- Membuat klien obrolan
- Membuat utas dengan 2 pengguna
- Mengirim pesan ke utas
- Menerima pesan dari utas
- Menghapus Pengguna dari utas
Berkontribusi
Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.
Azure SDK for JavaScript
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk