RTC 数据通道的行为不稳定
erratic behaviour of RTC datachannel
我正在使用RTC数据通道在两个对等体(两个chrome浏览器,一个Windows PC和另一个Mac)之间每100ms
(使用超时)传输数据(大约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
浏览器中),该浏览器上的数据接收几乎立即停止(但eh机器仍然接收数据)。
Chrome 中有一个错误(实际上是 usrsctp lib),如果 16 位序列计数器的包装发生在较长的消息中间,则会错误地处理它。它现在已经修复 - 所以值得再次尝试你的代码。看:铬问题664283
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 函数jquery.html()不提供数据属性集值
- Knockout.JS,模板都是通过表单不添加数据的
- 基于类的单击事件在10行之后不响应-数据表
- jquery ajax到php脚本不保存数据
- Kurento数据通道的创建和管理
- jQuery-输入时不提交数据
- 为什么我们需要为POST定义res.on('data'..,即使我们不处理数据
- Javascript”;结束”;函数工作不稳定
- 车把模板不显示数据
- Socket.io socket.emit 不将数据传递到服务器
- NG 重复不推出数据
- 节点.js 不等待数据
- 如何使用ParsleyJS 2.*使用javascript而不是数据属性
- j查询在设置属性后在后续单击时不读取数据属性
- 使用 ng-repeat解析不均匀数据/ json对象
- 画布到数据不带 alpha 通道的URL
- RTC 数据通道的行为不稳定
- 将数据发送到特定的客户端,而不是整个通道
- WebRTC数据通道不符合规格