let uplinkClient = null; // アップストリームネットワーク品質のテストに使用しますlet downlinkClient = null; // ダウンストリームネットワーク品質のテストに使用しますlet localStream = null; // テスト用のストリームですlet testResult = {// アップストリームネットワーク品質データを記録しますuplinkNetworkQualities: [],// ダウンストリームネットワーク品質データを記録しますdownlinkNetworkQualities: [],average: {uplinkNetworkQuality: 0,downlinkNetworkQuality: 0}}// 1. アップストリームネットワーク品質をテストしますasync function testUplinkNetworkQuality() {uplinkClient = TRTC.createClient({sdkAppId: 0, // sdkAppIdを入力userId: 'user_uplink_test',userSig: '', // uplink_testのuserSigmode: 'rtc'});localStream = TRTC.createStream({ audio: true, video: true });// 実際の業務シナリオに応じてvideo profileを設定しますlocalStream.setVideoProfile('480p');await localStream.initialize();uplinkClient.on('network-quality', event => {const { uplinkNetworkQuality } = event;testResult.uplinkNetworkQualities.push(uplinkNetworkQuality);});// テスト用のルームに入室します。競合防止のため、ルームナンバーはランダムにしますawait uplinkClient.join({ roomId: 8080 });await uplinkClient.publish(localStream);}// 2. ダウンストリームネットワーク品質をテストしますasync function testDownlinkNetworkQuality() {downlinkClient = TRTC.createClient({sdkAppId: 0, // sdkAppIdを入力userId: 'user_downlink_test',userSig: '', // userSigmode: 'rtc'});downlinkClient.on('stream-added', async event => {await downlinkClient.subscribe(event.stream, { audio: true, video: true });// サブスクリプション成功後、ネットワーク品質イベントの監視を開始しますdownlinkClient.on('network-quality', event => {const { downlinkNetworkQuality } = event;testResult.downlinkNetworkQualities.push(downlinkNetworkQuality);});})// テスト用のルームに入室します。競合防止のため、ルームナンバーはランダムにしますawait downlinkClient.join({ roomId: 8080 });}// 3. テストを開始しますtestUplinkNetworkQuality();testDownlinkNetworkQuality();// 4. 15秒後にテストを停止し、平均ネットワーク品質を計算しますsetTimeout(() => {// アップストリーム平均ネットワーク品質を計算しますif (testResult.uplinkNetworkQualities.length > 0) {testResult.average.uplinkNetworkQuality = Math.ceil(testResult.uplinkNetworkQualities.reduce((value, current) => value + current, 0) / testResult.uplinkNetworkQualities.length);}if (testResult.downlinkNetworkQualities.length > 0) {// ダウンストリーム平均ネットワーク品質を計算しますtestResult.average.downlinkNetworkQuality = Math.ceil(testResult.downlinkNetworkQualities.reduce((value, current) => value + current, 0) / testResult.downlinkNetworkQualities.length);}// テストを終了し、関連のステータスを消去します。uplinkClient.leave();downlinkClient.leave();localStream.close();}, 15 * 1000);
数値 | 意味 |
0 | ネットワークの状況は不明。現在のclientインスタンスが アップストリーム/ダウンストリーム接続を確立していないことを表します |
1 | ネットワーク状況は極めて良好 |
2 | ネットワーク状況は比較的良好 |
3 | ネットワーク状況は普通 |
4 | ネットワーク状況は不良 |
5 | ネットワーク状況は極めて不良 |
6 | ネットワーク接続が切断されている。 注意:ダウンストリームネットワーク品質がこの値の場合は、すべてのダウンストリーム接続が切断されていることを表します |
この記事はお役に立ちましたか?