我是WebRTC原生框架的新手。
我能够获得WebRTC源并运行基于http://andrii.sergiienko.me/?go=all/building-webrtc-demo-for-android/ enter link description here的演示Android应用程序。
我能够在同一本地网络上的两台Android设备之间发送/接收音频和视频。
有没有办法在此对等连接中发送小型JSON有效负载?
我尝试在源代码中查找它,但我发现只支持发送视频和音频。
谢谢。
答案 0 :(得分:2)
您正在寻找 WebRTC DataChannels 。
WebRTC的RTCDataChannel API用于将数据直接从一个对等方传输到另一个对等方。这非常适合在两个浏览器(Peers)之间发送数据,用于通信,游戏或文件传输等活动以及其他功能。
这是WebSockets的替代方案:
这是WebSockets的一个很好的替代方案,因为不涉及中央服务器,传输通常更快,没有瓶颈。当然,如果P2P数据通道通信失败,您可以通过挂钩激活基于Websockets的通信来缓解P2P传输的故障转移。
参考代码:
当您希望发送收到消息的消息(包括错误处理)时,将调用定义的事件。此代码应该在两个浏览器中运行。而不是发送“Hello World”,你只需要发送你的JSON字符串。
var peerConnection = new RTCPeerConnection();
// Establish your peer connection using your signaling channel here
var dataChannel =
peerConnection.createDataChannel("myLabel", dataChannelOptions);
dataChannel.onerror = function (error) {
console.log("Data Channel Error:", error);
};
dataChannel.onmessage = function (event) {
console.log("Got Data Channel Message:", event.data);
};
dataChannel.onopen = function () {
dataChannel.send("Hello World!");
};
dataChannel.onclose = function () {
console.log("The Data Channel is Closed");
};
dataChannel对象是从已建立的对等连接创建的。它可以在信号发生之前或之后创建。然后传入标签以区分此通道与其他通道以及一组可选配置设置:
var dataChannelOptions = {
ordered: false, // do not guarantee order
maxRetransmitTime: 3000, // in milliseconds
};
有关详细信息,请查看提供的链接。
<强>示例:强>
官方文档链接:DataChannels in WebRTC
使用WebRTC数据通道链接到文件Trasfer示例。 File Transfer
链接到WebRTC数据通道的常用用例 Use Cases