ヘッドレス ウェブ SDK イベント

ヘッドレス ウェブ SDK には、アプリケーション内の特定のアクションや更新を処理するためにリッスンできるイベントが用意されています。イベント リスナーは、.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.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

チャットのチェックインがタイムアウトしたときに送信されます。

入力イベント

エージェントが入力を開始すると、チャット アダプターがシグナルを送信し、ヘッドレス ウェブ SDK に typingStarted イベントが送信されます。エージェントが入力を停止すると、3 秒後にシグナルが送信され、ヘッドレス ウェブ SDK に typingEnded イベントが送信されます。3 秒のタイムアウトは構成できません。

chat.typingStarted

メンバーが入力を開始したときに送信されます。

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

chat.typingEnded

メンバーが入力を停止したときに送信されます。

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

チャットのチェックイン イベント

チャットのチェックイン イベントは次のとおりです。

checkIn

エンドユーザーがキューにいることを確認します。

メソッドの署名

checkIn(): Promise<CheckInResponse>

戻り値

CheckInResponse オブジェクトを返します。

Interfaces

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 オブジェクトを返します。

Interfaces

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

チェックイン ダイアログの表示状態をバックエンドに通知します。

メソッドの署名

notifyCheckInState(data: CheckInVisibilityStateRequest): Promise<void>

Interfaces

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 オブジェクトを返します。

Interfaces

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

チェックイン イベントが UI によってトリガーされたときに、バックエンドに通知します。これは、チェックイン ダイアログがエンドユーザーに表示されたときに使用されます。

メソッドの署名

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)
})