ヘッドレス ウェブ 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

}

chat.memberJoined

新しいメンバーが会話に参加したときに発行されます。

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

chat.memberLeft

メンバーが会話から退出したときに発行されます。

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

chat.typingStarted

メンバーが入力し始めたときに発行します。

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

chat.typingEnded

メンバーの入力が停止したときに発行されます。

client.on("chat.typingEnded", (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")
})

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

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

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

コブラウズ イベント

以下は、Co-browse 固有のイベントです。

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

Co-browse セッションが更新されたときに発行されます。

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

cobrowse.ended

共同ブラウジング セッションが終了したときに発行されます。

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