SDK web tanpa UI menyediakan peristiwa yang dapat Anda dengarkan untuk menangani
tindakan atau pembaruan tertentu dalam aplikasi Anda. Anda dapat menambahkan dan menghapus
pemroses peristiwa menggunakan metode .on dan .off.
const handleReady = () => {
console.log("**** client is ready")
}
client.on("ready", handleReady)
// client.off("ready", handleReady)
Peristiwa umum
Berikut adalah peristiwa umum untuk SDK
ready
Dipancarkan saat klien siap untuk berkomunikasi.
client.on("ready", () => {
})
authenticated
Dipancarkan saat klien telah diautentikasi dengan token pengguna.
client.on("authenticated", () => {
})
Peristiwa chat
Berikut adalah peristiwa khusus sesi chat.
chat.ongoing
Dipancarkan saat ada percakapan yang sedang berlangsung.
client.on("chat.ongoing", (chat) => {
console.log(chat)
})
chat.updated
Dipancarkan saat instance chat telah diperbarui.
client.on("chat.updated", (chat) => {
// the `chat` property on `client` has updated
console.log(chat)
})
chat.message
Dipancarkan saat ada pesan baru.
client.on("chat.message", message => {
console.log(message)
})
Jenis pesan:
interface MessageResponse {
$index: number;
$sid: string;
$timestamp: Date;
$userType: string;
$userId: number;
type: string;
content?: string;
event?: string;
file?: File;
// extra parameters
[key: string]: unknown;
}
chat.memberJoined
Dipancarkan saat anggota baru bergabung dalam percakapan.
client.on("chat.memberJoined", (identity) => {
console.log(identity)
})
chat.memberLeft
Dipancarkan saat anggota keluar dari percakapan.
client.on("chat.memberLeft", (identity) => {
console.log(identity)
})
chat.connected
Dipancarkan saat chat terhubung dengan penyedia percakapan.
client.on("chat.connected", () => {
console.log("connected")
})
Dalam kasus yang jarang terjadi, mungkin ada masalah latensi yang menyebabkan pesan dikirim dalam
chat sebelum SDK bergabung ke chat. Jika hal ini terjadi, Anda dapat menggunakan
fetchMessages untuk mendapatkan semua pesan yang ada dalam percakapan setelah chat
terhubung. Lihat contoh kode berikut:
client.on("chat.connected", async () = {
const messages = await
client.fetchMessages()
})
chat.disconnected
Dipancarkan saat chat terputus dari penyedia percakapan.
client.on("chat.disconnected", () => {
console.log("disconnected")
})
chat.dismissed
Dipancarkan saat status chat diubah menjadi dismissed.
client.on("chat.dismissed", () => {
console.log("dismissed")
})
chat.timeout
Dikeluarkan saat chat berakhir, dengan alasan timeout.
client.on("chat.timeout", () => {
console.log("timeout")
})
chat.ended
Dipancarkan saat chat berakhir.
client.on("chat.ended", () => {
console.log("ended")
})
chat.destroyed
Dipancarkan saat destroyChat dipanggil.
client.on("chat.destroyed", () => {
console.log("destroyed")
})
chat.checkInRequested
Dipancarkan saat chat dapat dimulai.
chat.checkInTimedOut
Dipancarkan saat check-in chat telah habis waktunya.
Peristiwa pengetikan
Saat agen mulai mengetik, adaptor chat akan mengirimkan sinyal yang menghasilkan pengiriman peristiwa
typingStarted ke SDK web tanpa UI. Saat agen berhenti
mengetik, sinyal akan dikirim setelah tiga detik yang menghasilkan peristiwa typingEnded
dikirim ke SDK web tanpa UI. Waktu tunggu tiga detik tidak dapat dikonfigurasi.
chat.typingStarted
Dipancarkan saat anggota mulai mengetik.
client.on("chat.typingStarted", (identity) => {
console.log(identity)
})
chat.typingEnded
Dipancarkan saat anggota berhenti mengetik.
client.on("chat.typingEnded", (identity) => {
console.log(identity)
})
Peristiwa check-in chat
Berikut adalah peristiwa check-in chat.
checkIn
Mengonfirmasi kehadiran pengguna akhir dalam antrean.
Tanda tangan metode
checkIn(): Promise<CheckInResponse>
Nilai yang ditampilkan
Mengembalikan objek CheckInResponse.
Antarmuka
interface CheckInResponse {
chat_id: number;
check_in_status: CheckInStatus;
check_in_at?: string;
}
enum CheckInStatus {
CONFIRMED = 'confirmed',
EXITED = 'exited',
PENDING = 'pending',
REQUESTED = 'requested',
SKIPPED = 'skipped',
TIMED_OUT = 'timed_out',
}
Contoh
try {
const response = await client.checkIn()
} catch (error) {
// handle error
}
exitCheckIn
Menghapus pengguna dari antrean check-in.
Tanda tangan metode
exitCheckIn(): Promise<CheckInResponse>
Nilai yang ditampilkan
Mengembalikan objek CheckInResponse.
Antarmuka
interface CheckInResponse {
chat_id: number;
check_in_status: CheckInStatus;
check_in_at?: string;
}
enum CheckInStatus {
CONFIRMED = 'confirmed',
EXITED = 'exited',
PENDING = 'pending',
REQUESTED = 'requested',
SKIPPED = 'skipped',
TIMED_OUT = 'timed_out',
}
notifyCheckInState
Memberi tahu backend tentang status visibilitas dialog check-in.
Tanda tangan metode
notifyCheckInState(data: CheckInVisibilityStateRequest): Promise<void>
Antarmuka
interface CheckInVisibilityStateRequest {
widget_minimized?: boolean;
tab_inactive?: boolean;
}
**Example**
try {
const visibilityState = {
widget_minimized: true,
tab_inactive: false,
}
await client.notifyCheckInState(visibilityState)
} catch (error) {
// handle error
}
rejoinChat
Menempatkan pengguna kembali dalam antrean setelah gagal mengonfirmasi check-in.
Tanda tangan metode
rejoinChat(): Promise<CheckInResponse>
Nilai yang ditampilkan
Mengembalikan objek CheckInResponse.
Antarmuka
interface CheckInResponse {
chat_id: number;
check_in_status: CheckInStatus;
check_in_at?: string;
}
enum CheckInStatus {
CONFIRMED = 'confirmed',
EXITED = 'exited',
PENDING = 'pending',
REQUESTED = 'requested',
SKIPPED = 'skipped',
TIMED_OUT = 'timed_out',
}
Contoh
try {
const response = await client.rejoinChat()
} catch (error) {
// handle error
trackCheckInEvent
Memberi sinyal ke backend saat peristiwa check-in telah dipicu oleh UI. Ini digunakan saat dialog check-in telah ditampilkan kepada pengguna akhir.
Tanda tangan metode
trackCheckInEvent(): Promise<void>
Contoh
try {
await client.trackCheckInEvent()
} catch (error) {
// handle error
Peristiwa penjelajahan bersama
Berikut adalah peristiwa khusus untuk Penjelajahan bersama:
cobrowse.request
Dipancarkan saat pengguna akhir atau agen meminta untuk memulai sesi Penjelajahan bersama.
client.on("cobrowse.request", { from } => {
console.log("request by", from)
})
cobrowse.loaded
Dipancarkan saat sesi Penjelajahan bersama dimuat.
client.on("cobrowse.loaded", session => {
console.log("cobrowse session", session)
})
cobrowse.updated
Dipancarkan saat sesi Penjelajahan bersama diperbarui.
client.on("cobrowse.updated", session => {
console.log("cobrowse session", session)
})
cobrowse.ended
Dipancarkan saat sesi Penjelajahan bersama berakhir.
client.on("cobrowse.ended", session => {
console.log("cobrowse session", session)
})