RTC データチャネルを使用して、2 つのピア (両方のクロム ブラウザ、1 つの Windows PC と他の Mac) の間で (タイムアウトを使用して) データを (約200kb
) ごとに転送しています。100ms
なんらかの理由で突然、一般的に約 5 分後にピアの 1 つがデータの受信を停止し、しばらくするともう 1 つのピアもデータの受信を停止します。
多くのデバッグの後、両方のピアがまだデータを送信していることがわかりました。ネットワーク トラフィック分析から、他のマシンがデータを受信していることは明らかでしたが、ブラウザはchannel.onmessage
.
私のコードの一部:
function timepot1(){ // I have cheked, this keeps getting called, no problem here
try {
....
channel.send(JSON.stringify(jsObject));
}catch (err) {
console.log(err);
}
setTimeout(timepot1, 100);
};
これを引き起こしている既知のバグがありますか、それとも同じチャネルの両方のピアから同時に大量のデータを転送しているためですか?
編集
どうやら、シングルチャネルに変更したとき、2 つのデータチャネル (各方向の送信用に 1 つ) を使用していたようです。それははるかに早く機能しなくなりました。
これはばかげているように聞こえますが、(chrome
ブラウザーで) コンソールをクリアすると、そのブラウザーでのデータの受信はほとんどすぐに停止します (ただし、マシンはまだデータを受信しています)。