Ims*_*ull 4 google-chrome google-chrome-extension webrtc google-chrome-app rtcdatachannel
我想将流数据(作为 的序列ArrayBuffer)从 Chrome 扩展程序发送到 Chrome 应用程序,因为Chrome 消息 API(包括chrome.runtime.sendMessage, postMessage...)不支持ArrayBuffer并且 JS 数组性能较差,我必须尝试其他方法。最终,我发现 WebRTCRTCDataChannel对于我来说可能是一个很好的解决方案。
我已成功通过 a 发送字符串RTCDataChannel,但是当我尝试发送时,ArrayBuffer我得到:
code: 19
message: "Failed to execute 'send' on 'RTCDataChannel': Could not send data"
name: "NetworkError"
Run Code Online (Sandbox Code Playgroud)
看来这不是带宽限制问题,因为即使我发送了一个字节的数据,它也失败了。这是我的代码:
code: 19
message: "Failed to execute 'send' on 'RTCDataChannel': Could not send data"
name: "NetworkError"
Run Code Online (Sandbox Code Playgroud)
在 OSX 10.10.1、Chrome M40 (Stnble)、M42(Canary) 上测试;以及 Chromebook M40 上。
我在这里提交了一个 WebRTC 错误。
我修改了我的代码,现在一切都工作得惊人:
RtpDataChannels创建时删除了选项RTCPeerConnection。(是的,RtpDataChannels如果你想要数据通道,请删除选项,多么神奇的世界!)在接收方:不需要createDataChannel,而是通过使用回调onmessage来处理:onxxxevent.channlepc.ondatachannel
pc.ondatachannel function(event)
var receiveChannel = event.channel;
receiveChannel.onmessage = function(event){
console.log("Got Data Channel Message:", event.data);
};
};
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2976 次 |
| 最近记录: |