אירועים ב-SDK לאתרים ללא ממשק משתמש

ה-SDK של headless web מספק אירועים שאפשר להאזין להם כדי לטפל בפעולות או בעדכונים ספציפיים באפליקציה. אפשר להוסיף ולהסיר מאזינים לאירועים באמצעות השיטות .on ו-.off.

const handleReady = () => {
  console.log("**** client is ready")
}

client.on("ready", handleReady)

// client.off("ready", handleReady)

אירועים כלליים

אלה אירועים כלליים של ה-SDK

ready

האירוע מופעל כשהלקוח מוכן לתקשורת.

client.on("ready", () => {
})

authenticated

האירוע מופעל כשהלקוח מאומת באמצעות האסימון של המשתמש.

client.on("authenticated", () => {
})

אירועים ב-Chat

אלה אירועים ספציפיים לסשנים של צ'אט.

chat.ongoing

האירוע הזה מתרחש כשיש צ'אט פעיל.

client.on("chat.ongoing", (chat) => {
  console.log(chat)
})

chat.updated

האירוע מופעל כשמופע הצ'אט מתעדכן.

client.on("chat.updated", (chat) => {
  // the `chat` property on `client` has updated
  console.log(chat)
})

chat.message

האירוע מופעל כשמתקבלת הודעה חדשה.

client.on("chat.message", message => {
  console.log(message)
})

סוג ההודעה:

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

האירוע מופעל כשמשתמש חדש מצטרף לשיחה.

client.on("chat.memberJoined", (identity) => {
  console.log(identity)
})

chat.memberLeft

האירוע מופעל כשמשתתף עוזב את השיחה.

client.on("chat.memberLeft", (identity) => {
  console.log(identity)
})

chat.connected

האירוע מופעל כשהצ'אט מחובר לספק השיחה.

client.on("chat.connected", () => {
  console.log("connected")
})

במקרים נדירים, יכול להיות שיהיו בעיות של זמן אחזור שיגרמו לשליחת הודעה בצ'אט לפני שה-SDK יצטרף לצ'אט. במקרים כאלה, אפשר להשתמש ב-fetchMessages כדי לקבל את כל ההודעות הקיימות בשיחה אחרי שהצ'אט מתחבר. דוגמת קוד:

client.on("chat.connected", async () = {
  const messages = await
client.fetchMessages()
})

chat.disconnected

האירוע הזה מופעל כשהצ'אט מתנתק מספק השיחות.

client.on("chat.disconnected", () => {
  console.log("disconnected")
})

chat.dismissed

האירוע מופעל כשסטטוס הצ'אט משתנה ל-dismissed.

client.on("chat.dismissed", () => {
  console.log("dismissed")
})

chat.timeout

מופעל כשהצ'אט מסתיים, והסיבה היא timeout.

client.on("chat.timeout", () => {
  console.log("timeout")
})

chat.ended

האירוע מופעל כשהצ'אט מסתיים.

client.on("chat.ended", () => {
  console.log("ended")
})

chat.destroyed

האירוע הזה מופעל כשמתקשרים אל destroyChat.

client.on("chat.destroyed", () => {
  console.log("destroyed")
})

chat.checkInRequested

מופעל כשניתן לבצע צ'ק-אין לשיחה.

chat.checkInTimedOut

האירוע הזה מופעל כשחלף הזמן שהוקצב לצ'אט.

אירועי הקלדה

כשאנשי תמיכה מתחילים להקליד, מתאם הצ'אט שולח אות שגורם לשליחת האירוע typingStarted אל ה-SDK של האתר ללא ראש. כשהסוכן מפסיק להקליד, נשלח אות אחרי שלוש שניות שמוביל לשליחת אירוע typingEndedל-SDK של האינטרנט ללא ראש. אי אפשר להגדיר את פרק הזמן הקצוב לתפוגה של שלוש שניות.

chat.typingStarted

האירוע מופעל כשמשתתף מתחיל להקליד.

client.on("chat.typingStarted", (identity) => {
  console.log(identity)
})

chat.typingEnded

מופעל כשמשתמש מפסיק להקליד.

client.on("chat.typingEnded", (identity) => {
  console.log(identity)
})

אירועים של צ'אט

בצ'אט, המשתמשים מתבקשים לאשר שהם מוכנים לפני שהם מועברים לנציג. בקטע הזה מתועדות השיטות של ה-SDK האינטרנטי ללא ראש להטמעה של צ'אט עם נציג. מידע נוסף זמין במאמר בנושא הצטרפות לשיחה.

checkIn

שולח לשרת אות אישור שמציין שמשתמש הקצה נמצא ומוכן להתחבר לנציג במהלך חלון הצ'ק-אין. העדכון של check_in_status בצ'אט מתבצע באופן מקומי אחרי שהשרת מאשר את הפעולה. תשתמש בזה בתשובה לאירוע chat.checkInRequested.

חתימת שיטה

checkIn(): Promise<CheckInResponse>

הערך המוחזר

מחזירה אובייקט CheckInResponse.

ממשקים

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',
}

דוגמה

try {
  const response = await client.checkIn()
} catch (error) {
  // handle error
}

exitCheckIn

הסרת המשתמש מתור ההמתנה לצ'ק-אין.

חתימת שיטה

exitCheckIn(): Promise<CheckInResponse>

הערך המוחזר

מחזירה אובייקט CheckInResponse.

ממשקים

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

הודעה על מצב החשיפה של תיבת הדו-שיח של הצ'ק-אין נשלחת אל ה-backend.

חתימת שיטה

notifyCheckInState(data: CheckInVisibilityStateRequest): Promise<void>

ממשקים

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

המשתמש יוחזר לתור אם הוא לא יאשר את הצ'ק-אין.

חתימת שיטה

rejoinChat(): Promise<CheckInResponse>

הערך המוחזר

מחזירה אובייקט CheckInResponse.

ממשקים

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',
}

דוגמה

try {
  const response = await client.rejoinChat()
} catch (error) {
  // handle error

trackCheckInEvent

אותות לשרת העורפי כשאירועי צ'ק-אין מופעלים על ידי ממשק המשתמש. ההגדרה הזו משמשת כשהדיאלוג של הצ'ק-אין מוצג למשתמש הקצה.

חתימת שיטה

trackCheckInEvent(): Promise<void>

דוגמה

try {
  await client.trackCheckInEvent()
} catch (error) {
  // handle error

אירועים של גלישה משותפת

אלה אירועים שספציפיים לגלישה משותפת:

cobrowse.request

האירוע מופעל כשמשתמש קצה או נציג שולחים בקשה להתחיל סשן של גלישה משותפת.

client.on("cobrowse.request", { from } => {
  console.log("request by", from)
})

cobrowse.loaded

האירוע מופעל כשסשן של גלישה משותפת נטען.

client.on("cobrowse.loaded", session => {
  console.log("cobrowse session", session)
})

cobrowse.updated

האירוע הזה מופעל כשמתבצע עדכון בסשן של גלישה משותפת.

client.on("cobrowse.updated", session => {
  console.log("cobrowse session", session)
})

cobrowse.ended

האירוע מופעל כשסשן של גלישה משותפת מסתיים.

client.on("cobrowse.ended", session => {
  console.log("cobrowse session", session)
})