ピア・コネクション・イベント

注: この機能は、JavaScript/TypeScript SDKでのみ利用可能です。

通話が発信または着信されると、Client SDKは RTCPeerConnection 内部で。その peerConnectionCreated このイベントにより、オブジェクトがインスタンス化された瞬間(ICEの収集が始まる前)にそのオブジェクトにアクセスできるため、必要なWebRTCライフサイクルイベントを自由に購読することができます。

これは、ICEの収集進捗状況、接続状態の遷移、障害の検出など、低レベルの接続診断を監視するのに役立ちます。

client.on('peerConnectionCreated', (callId, pc) => {
  console.log(`Peer connection created for call ${callId}`);

  pc.addEventListener('connectionstatechange', () => {
    console.log(`[PC ${callId}] connectionState: ${pc.connectionState}`);
  });

  pc.addEventListener('iceconnectionstatechange', () => {
    console.log(
      `[PC ${callId}] iceConnectionState: ${pc.iceConnectionState}`
    );
  });

  pc.addEventListener('icegatheringstatechange', () => {
    console.log(`[PC ${callId}] iceGatheringState: ${pc.iceGatheringState}`);
  });
});

通話IDの利用状況

通話の方向 callId
インバウンド 利用可能 — メディアの設定が開始される前にコールIDが判明している
アウトバウンド null — ピア接続が確立された時点で、サーバーはまだIDを割り当てていない

WebRTC イベントの登録

上記のコードスニペットは、 connectionstatechange, iceconnectionstatechangeそして icegatheringstatechange. これらは、通話の接続に関する問題を診断する際に最も役立つイベントです。完全なリストは RTCPeerConnection イベントは、以下の MDNのドキュメント.

通話品質統計の収集 通話中にリアルタイムの品質指標を収集するには、以下を使用します。 pc.getStats() ピア間接続について。これにより、音声品質の問題の診断に役立つWebRTCの統計情報(ジッター、パケットロス、往復伝送時間)が返されます。詳しくは、 MDN RTCPeerConnection.getStats() 詳細はこちら。