IVS Web Broadcast SDK でのエラー処理 | Real-Time Streaming - Amazon IVS

IVS Web Broadcast SDK でのエラー処理 | Real-Time Streaming

このセクションでは、エラー状態の概要、Web Broadcast SDK がエラー状態をアプリケーションに報告する方法、およびエラー発生時にアプリケーションが実行する処理について説明します。エラーは SDK によって StageEvents.ERROR イベントのリスナーに報告されます。

stage.on(StageEvents.ERROR, (error: StageError) => { // log or handle errors here console.log(`${error.code}, ${error.category}, ${error.message}`); });

ステージエラー

StageError は、SDK が復旧できない問題に遭遇したときに報告され、通常、アプリケーションの介入やネットワークの再接続が必要になります。

報告されたそれぞれの StageError には、コード (または StageErrorCode)、メッセージ (文字列)、カテゴリ (StageErrorCategory) があります。それぞれが基盤となるオペレーションカテゴリに関連しています。

エラーのオペレーションカテゴリは、ステージへの接続 (JOIN_ERROR)、ステージへのメディアの送信 (PUBLISH_ERROR)、またはステージからの受信メディアストリームの受信 (SUBSCRIBE_ERROR) のどちらに関連しているかに基づいて決定されます。

StageError のコードプロパティは、特定の問題をレポートします。

名前 コード [Recommended Action] (推奨されるアクション)

TOKEN_MALFORMED

1

有効なトークンを作成し、ステージのインスタンス化を再試行してください。

TOKEN_EXPIRED

2

有効期限が切れていないトークンを作成し、ステージのインスタンス化を再試行します。

タイムアウト

3

オペレーションがタイムアウトしました。ステージが存在し、トークンが有効である場合、この障害はネットワークの問題である可能性があります。この場合は、デバイスの接続が回復するまでお待ちください。

FAILED

4

オペレーションの試行中に致命的な状態が発生しました。エラーの詳細を確認してください。

ステージが存在し、トークンが有効である場合、この障害はネットワークの問題である可能性があります。この場合は、デバイスの接続が回復するまでお待ちください。

CANCELED

5

アプリケーションコードをチェックし、繰り返し joinrefreshStrategy、または replaceStrategy 呼び出しがないことを確認します。これにより、完了前に繰り返しオペレーションが開始され、キャンセルされる可能性があります。

STAGE_AT_CAPACITY

6

戦略を更新して、ステージの負荷が最大限から下がったら、オペレーションを再試行してください。

CODEC_MISMATCH

7

コーデックはステージではサポートされていません。コーデックのサポートについては、ブラウザとプラットフォームを確認してください。IVS Real-Time Streaming の場合、ブラウザはビデオ用の H.264 コーデックとオーディオ用の Opus コーデックをサポートしている必要があります。

TOKEN_NOT_ALLOWED

8

トークンにはオペレーションに対するアクセス許可がありません。トークンを正しいアクセス許可で再作成し、再試行してください。

StageError の処理の例

StageError コードを使用して、エラーが期限切れのトークンによるものかどうかを判断します。

stage.on(StageEvents.ERROR, (error: StageError) => { if (error.code === StageError.TOKEN_EXPIRED) { // recreate the token and stage instance and re-join } });

既に参加している場合のネットワークエラー

デバイスのネットワーク接続が切断されると、SDK と Stages サーバーとの接続が失われる可能性があります。SDK がバックエンドサービスにアクセスできなくなるため、コンソールにエラーが表示される場合があります。https://broadcast.stats.live-video.net への POST は失敗します。

公開中/サブスクライブ中の場合は、公開/サブスクライブの試行に関連するエラーがコンソールに表示されます。

SDK は、エクスポネンシャルバックオフストラテジーを使用して内部で再接続を試みます。

アクション: デバイスの接続が回復するまでお待ちください。

エラー状態

これらの状態は、アプリケーションのログ記録に使用し、特定の参加者のステージへの接続の問題を通知するメッセージをユーザーに表示することをお勧めします。

公開

SDK は公開が失敗したときに ERRORED を報告します。

stage.on(StageEvents.STAGE_PARTICIPANT_PUBLISH_STATE_CHANGED, (participantInfo, state) => { if (state === StageParticipantPublishState.ERRORED) { // Log and/or display message to user } });

Subscribe

SDK はサブスクライブが失敗したときに ERRORED を報告します。これは、ネットワークの状態が原因で発生する可能性がありますが、ステージがサブスクライバーのキャパシティに達した場合にも発生することがあります。

stage.on(StageEvents.STAGE_PARTICIPANT_SUBSCRIBE_STATE_CHANGED, (participantInfo, state) => { if (state === StageParticipantSubscribeState.ERRORED) { // Log and/or display message to user } });