背景
beat-link (Pro DJ Link) の調査を踏まえ、TCNetのアートワーク取得における信頼性向上の検討事項をまとめる。
TCNetはUDP上のFileパケットでアートワークを転送するため、TCPベースのPro DJ Linkと比べてパケットロスや応答遅延の影響を受けやすい。
現状の実装
requestTimeout: 2000ms (リクエスト全体のタイムアウト)
fileCollectionTimeout: 200ms (totalPackets=0のFileパケット蓄積タイムアウト)
- tcnet-viewer側で最大3回リトライ
観測された問題パターン
Pattern 1: 部分データ (解決済み)
BridgeがtotalPackets=0のFileパケットで送信 → 最初のパケットだけで即resolve → 不完全な画像
→ fileCollectionTimeoutベースの蓄積方式で対応済み
Pattern 2: 全リトライtimeout
Bridgeが応答しない or 応答が遅い → 3回×2秒=6秒で全滅
→ 未解決。requestTimeoutの延長が有効かもしれないが、UXとのバランスが必要
検討事項
参考
背景
beat-link (Pro DJ Link) の調査を踏まえ、TCNetのアートワーク取得における信頼性向上の検討事項をまとめる。
TCNetはUDP上のFileパケットでアートワークを転送するため、TCPベースのPro DJ Linkと比べてパケットロスや応答遅延の影響を受けやすい。
現状の実装
requestTimeout: 2000ms (リクエスト全体のタイムアウト)fileCollectionTimeout: 200ms (totalPackets=0のFileパケット蓄積タイムアウト)観測された問題パターン
Pattern 1: 部分データ (解決済み)
Bridgeが
totalPackets=0のFileパケットで送信 → 最初のパケットだけで即resolve → 不完全な画像→
fileCollectionTimeoutベースの蓄積方式で対応済みPattern 2: 全リトライtimeout
Bridgeが応答しない or 応答が遅い → 3回×2秒=6秒で全滅
→ 未解決。requestTimeoutの延長が有効かもしれないが、UXとのバランスが必要
検討事項
requestTimeoutを2秒→5秒程度に延長する検討 (beat-linkは10秒)fileCollectionTimeoutの200msが最適か実機データで検証参考