Javascript RTC数据通道的不稳定行为

Javascript RTC数据通道的不稳定行为,javascript,webrtc,rtcdatachannel,Javascript,Webrtc,Rtcdatachannel,我使用RTC数据通道在两个对等计算机(两个chrome浏览器,一台windows pc和另一台mac)之间每隔100毫秒(使用超时)传输一次数据(大约200kb) 出于某种原因,突然无缘无故地,通常在大约5分钟后,一个对等方停止接收数据,一段时间后,另一个对等方也停止接收数据 经过大量调试后,我发现两台对等机仍在传输数据,从网络流量分析中可以清楚地看出,另一台机器正在接收数据,但浏览器没有调用channel.onmessage 我的部分代码: function timepot1(){ // I

我使用RTC数据通道在两个对等计算机(两个chrome浏览器,一台windows pc和另一台mac)之间每隔100毫秒(使用超时)传输一次数据(大约
200kb

出于某种原因,突然无缘无故地,通常在大约5分钟后,一个对等方停止接收数据,一段时间后,另一个对等方也停止接收数据

经过大量调试后,我发现两台对等机仍在传输数据,从网络流量分析中可以清楚地看出,另一台机器正在接收数据,但浏览器没有调用
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);
};
是否有一些已知的错误导致了这种情况,或者是因为我同时从同一通道上的两个对等方传输了大量数据


编辑

显然,当我改为单通道时,我使用了两个数据通道(每个方向一个用于传输)。它停止工作的速度要快得多

这听起来很愚蠢,但当我清除控制台(在
chrome
browser中)时,该浏览器上的数据接收几乎立即停止(但eh机器仍然接收数据)。

chrome中有一个bug(实际上是usrsctp lib)这是错误的处理包装的16位序列计数器,如果它发生在中间的一个较长的消息。它现在已修复-因此值得再次尝试您的代码。 见:

我会说这是一个bug,我会向相应的浏览器供应商报告。同意-向Chrome报告。在Firefox中尝试一下(每晚,也许是调试版本),如果是这样,您可以通过NSPR_LOG_MODULES=datachannel:5,sctp:5,timestamp进行调试——如果需要,还可以通过一个令人讨厌的别名:(tcsh alias):alias log2pcap'grep“sctp_PACKET”\!:1 | text2pcap-D-n-l248-t“%H:%M:%S.-\!:2'