Bagikan melalui


Reaksi

Artikel ini menjelaskan cara menerapkan reaksi untuk SDK Panggilan Azure Communication Services. Kemampuan ini memungkinkan peserta dalam panggilan grup atau rapat untuk mengirim dan menerima reaksi dengan peserta di Azure Communication Services dan Microsoft Teams.

Pengaturan konfigurasi dan kebijakan di Microsoft Teams mengontrol reaksi untuk pengguna dalam rapat Teams. Untuk informasi selengkapnya, lihat Mengelola reaksi dalam rapat Teams dan webinar dan Opsi rapat di Microsoft Teams.

Prasyarat

Batasan reaksi

Sistem menarik reaksi oleh batch secara berkala. Batasan batch saat ini adalah 20.000 reaksi yang ditarik setiap 3 detik.

Jika jumlah reaksi melebihi batas, reaksi sisa dikirim dalam batch berikutnya.

Dukungan

Tabel berikut menentukan dukungan untuk reaksi di Azure Communication Services.

Dukungan rapat Teams didasarkan pada kebijakan Teams.

Identitas dan jenis panggilan

Tabel berikut menunjukkan dukungan untuk reaksi dalam jenis panggilan dan identitas yang berbeda.

Identitas Rapat interop Teams Ruang Panggilan 1:1 Panggilan grup Panggilan Grup interop Teams
Pengguna Communication Services ✔️ ✔️ ✔️ ✔️
Pengguna Microsoft 365 ✔️ ✔️ ✔️

Operasional

Tabel berikut menunjukkan dukungan untuk reaksi dalam Memanggil SDK ke jenis identitas individual.

Operasional Pengguna Communication Services Pengguna Microsoft 365
Kirim reaksi tertentu (seperti, cinta, tertawa, tepuk tangan, terkejut) ✔️ ✔️
Menerima reaksi tertentu (seperti, cinta, tertawa, tepuk tangan, terkejut) ✔️ ✔️

SDK

Tabel berikut ini memperlihatkan dukungan untuk fitur Mode Bersama di SDK Azure Communication Services individual.

Platform Web Web UI iOS Antarmuka pengguna iOS Android Android UI Windows
Didukung ✔️ ✔️

Pasang SDK

npm install Gunakan perintah untuk menginstal SDK Umum dan Panggilan Azure Communication Services untuk JavaScript:

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

Menginisialisasi objek yang diperlukan

Instans CallClient diperlukan untuk sebagian besar operasi panggilan. Saat membuat instans baru CallClient , Anda dapat mengonfigurasinya dengan opsi kustom seperti Logger instans.

CallClient Dengan instans, Anda dapat membuat CallAgent instans dengan memanggil createCallAgent. Metode ini secara asinkron mengembalikan objek instans CallAgent.

Metode createCallAgent menggunakan CommunicationTokenCredential sebagai argumen. Hal ini menerima token akses pengguna.

Anda dapat menggunakan metode getDeviceManager pada instans CallClient untuk mengakses deviceManager.

const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");

// Set the logger's log level
setLogLevel('verbose');

// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()

Cara terbaik mengelola konektivitas SDK ke infrastruktur Microsoft

Call Agent Instans ini membantu Anda mengelola panggilan (untuk bergabung atau memulai panggilan). Untuk bekerja, SDK panggilan Anda perlu tersambung ke infrastruktur Microsoft untuk mendapatkan pemberitahuan panggilan masuk dan mengoordinasikan detail panggilan lainnya. Anda Call Agent memiliki dua kemungkinan status:

Tersambung - Nilai Call Agent Connected connectionStatue berarti SDK klien terhubung dan mampu menerima pemberitahuan dari infrastruktur Microsoft.

Terputus - Nilai Call Agent Disconnected status connectionStatue ada masalah yang mencegah SDK menyambungkannya dengan benar. Call Agent harus dibuat ulang.

  • invalidToken: Jika token kedaluwarsa atau instans tidak valid Call Agent terputus dengan kesalahan ini.
  • connectionIssue: Jika ada masalah dengan klien yang terhubung ke microsoft infrascture, setelah banyak percobaan Call Agent ulang mengekspos connectionIssue kesalahan.

Anda dapat memeriksa apakah lokal Call Agent Anda tersambung ke infrastruktur Microsoft dengan memeriksa nilai connectionState properti saat ini. Selama panggilan aktif, Anda dapat mendengarkan connectionStateChanged acara untuk menentukan apakah Call Agent perubahan dari status Tersambung ke Terputus .

const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'

const connectionStateCallback = (args) => {
    console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
    // it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);

Menerapkan reaksi untuk peserta rapat

Di Azure Communication Services peserta dapat mengirim dan menerima reaksi selama panggilan grup:

  • Suka
  • Cinta
  • Tepuk tangan
  • Tertawa
  • Terkejut

Untuk mengirim reaksi, gunakan sendReaction(reactionMessage) API. Untuk menerima reaksi, pesan dibangun dengan jenis ReactionMessage menggunakan Reaction enum sebagai atribut.

Anda perlu berlangganan peristiwa yang menyediakan data peristiwa pelanggan:

export interface ReactionEventPayload {
    /**
     * identifier for a participant
     */
    identifier: CommunicationUserIdentifier | MicrosoftTeamsUserIdentifier;
    /**
     * reaction type received
     */
    reactionMessage: ReactionMessage;
}

Anda dapat menentukan reaksi mana yang berasal dari peserta mana yang menggunakan identifier atribut dan mendapatkan jenis reaksi dari ReactionMessage.

Sampel memperlihatkan cara mengirim reaksi dalam rapat

const reaction = call.feature(SDK.Features.Reaction);
const reactionMessage: SDK.ReactionMessage = {
       reactionType: 'like'
};
await reaction.sendReaction(reactionMessage);

Sampel memperlihatkan cara menerima reaksi dalam rapat

const reaction = call.feature(SDK.Features.Reaction);
reaction.on('reaction', event => {
    // user identifier
    console.log("User Mri - " + event.identifier);
    // received reaction
    console.log("User Mri - " + event.reactionMessage.reactionType);
    // reaction message
    console.log("reaction message - " + JSON.stringify(event.reactionMessage));
}

Poin-poin penting saat menggunakan reaksi

  • Reaksi didukung untuk skenario interoperabilitas Microsoft Teams. Dukungan didasarkan pada kebijakan Teams.
  • Reaksi didukung di SDK Panggilan Web.
  • Reaksi saat ini tidak didukung di SDK Asli.

Langkah berikutnya