ヘッドレス ウェブ 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)
})
チャットのチェックイン イベント
チャットのチェックインでは、エージェントに接続する前に、準備ができているかどうかを確認するようエンドユーザーに求めます。このセクションでは、チャット チェックインを実装するためのヘッドレス ウェブ SDK メソッドについて説明します。詳細については、チャットのチェックインをご覧ください。
checkIn
エンドユーザーがチェックイン ウィンドウ中にエージェントと接続する準備ができていることを示す確認シグナルをサーバーに送信します。サーバーが確認した後、チャットの check_in_status をローカルで更新します。これは chat.checkInRequested イベントへの応答で使用します。
メソッドのシグネチャ
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
エンドユーザーまたはエージェントが Co-browse セッションの開始をリクエストしたときに発行されます。
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
Co-browse セッションが終了したときに発行されます。
client.on("cobrowse.ended", session => {
console.log("cobrowse session", session)
})