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