例外処理|Web SDK

重要だ: あなたの アプリID はあなたの APIキー.

プログラミングのベストプラクティスは、物事がうまくいかないことを想定し、それを予期してコードを書くことである。例えば、セッションに接続しようとするとき、クライアントはインターネットに接続していないかもしれません。

について ウェブSDK には、実行時に例外を明らかにする完了ハンドラと例外イベントが含まれている。

完了ハンドラ

非同期に完了する多くのメソッドでは、最後に渡すパラメーターは完了ハンドラー関数です。この関数は、メソッドが完了するか失敗したときに呼び出されます。失敗した場合、関数にはエラー・オブジェクトがパラメータとして渡されます。

例えば、次のコードは Session.connect() メソッドに、完了ハンドラーを渡す:

var session = OT.initSession(apiKey, session);
session.connect(token, function (error) {
    if (error) {
    console.log("Failed to connect: ", error.message);
    if (error.name === "OT_NOT_CONNECTED") {
        alert("You are not connected to the internet. Check your network connection.");
    }
    } else {
    console.log("Connected");
    }
});

重要だ: あなたの アプリID はあなたの APIキー.

メソッドの成功や失敗を確認するためには、完了ハンドラを実装することが重要である。場合によっては、エラーの原因となったクライアントの条件があれば、ユーザーにプロンプトを出すことができる。例えば error.name プロパティを呼び出すときに "OT_NOT_CONNECTED "に設定される。 Session.connect() メソッドが失敗すると、クライアントがネットワークに接続されていないことを示す。

クライアントの責任ではないその他のエラー状態については、エラーコードとメッセージを調べて、エラーの性質を確認することができます。例えば Session.connect() メソッドが失敗した場合、エラーコード1004は無効なトークンで接続しようとしたことを示します。これは、有効期限が切れたトークンか、接続先のセッションと一致しないトークンである可能性があります。詳細については、エラー・オブジェクトのメッセージ・プロパティを確認してください。

完了ハンドラを持つメソッド

Web SDK の以下のメソッドには completionHandler パラメータで指定します。このオプション・パラメーターには、メソッドが成功または失敗したときに呼び出される関数を渡すことができる:

  • Session.forceDisconnect()
  • Session.forceUnpublish()
  • Session.connect()
  • Session.publish()
  • Session.signal()
  • Session.subscribe()
  • OT.initPublisher()

チェック message プロパティを参照してください。

エラーが発生した場合 code の値である。 error パラメータには以下のいずれかの値を指定する:

呼び出し時のエラー Session.connect():
コード 説明
1004 認証エラーです。詳細はエラーメッセージを確認してください。このエラーは、セッションに接続しようとしたときに、期限切れのトークンを渡した場合に発生します。また、無効なトークンまたはAPIキーを渡した場合にも発生する可能性があります。トークンを生成する際に、現在のバージョンの サーバーSDK.
1005 セッションIDが無効です。セッションIDを生成する際に、現在のバージョンの サーバーSDK.
1006 接続に失敗しました。セッションに接続できません。クライアントにネットワーク接続を確認させてください。
呼び出し時のエラー Session.forceDisconnect():
コード 説明
1520 強制切断できません。クライアントのトークンにモデレーターのロールが設定されていません。クライアントがセッションに接続すると capabilities プロパティは、クライアントの能力を一覧表示します。
呼び出し時のエラー Session.forceUnpublish():
コード 説明
1530 強制アンパブリッシュできません。クライアントのトークンにモデレーターのロールが設定されていません。クライアントがセッションに接続すると capabilities プロパティは、クライアントの能力を一覧表示します。
1535 無効なストリームを強制的にアンパブリッシュする。を呼び出す前に、ストリームがセッションを終了していないことを確認してください。 forceUnpublish() メソッドを使用する。
呼び出し時のエラー Session.publish():
コード 説明
1010 発行できません:クライアントがセッションに接続されていません。公開を試みる前に、アプリケーションがクライアントの接続に成功しているか確認してください。また、公開を試みる前にクライアントが切断されていないことを確認してください。
1500 公開できません。クライアントのトークンにパブリッシュまたはモデレータのロールが設定されていません。クライアントがセッションに接続すると capabilities プロパティは、クライアントの能力を一覧表示します。
1601 内部エラー -- WebRTCパブリッシャーエラーです。再パブリッシュするか、セッションに再接続してください。
呼び出し時のエラー Session.signal():
コード 説明
1510 信号が届かない。を確認してください。 to プロパティを有効なConnectionオブジェクトに設定してください。また、セッションに接続されていることを確認してください。
呼び出し時のエラー Session.subscribe():
コード 説明
1600 内部エラー -- WebRTC 加入者エラー。ストリームに再登録するか、セッションに再接続してください。
呼び出し時のエラー OT.initPublisher():
コード 説明
1004 認証エラーです。詳細はエラーメッセージを確認してください。このエラーは、セッションに接続しようとしたときに、期限切れのトークンを渡した場合に発生します。また、無効なトークンまたはAPIキーを渡した場合にも発生する可能性があります。トークンを生成する際に、現在のバージョンの サーバーSDK.
任意のメソッドを呼び出すときに発生する可能性のある一般的なエラー:
コード 説明
1011 パラメータが無効です。メソッド呼び出しに有効なパラメータ値を渡しているか確認してください。
2000 内部エラーです。セッションに再接続して、アクションを再試行してください。

例外イベントのリスニング

すべての例外イベントを検出するには、次のようにイベントリスナーを追加します。 exception イベントで、OTオブジェクトによってディスパッチされる。しかし、特定のメソッドの完了ハンドラでエラーに反応する方が簡単だ。