支持WebRTC的浏览器之间传输JSON(Transferring JSON between bro

2019-06-23 18:14发布

我被的WebRTC而感到兴奋,当我听说这件事最初。 这听起来像的We​​bSockets,但没有一台服务器。 不幸的是,所有的教程我已经能够找到强调视频和和的WebRTC的音频方面。 我无法找到有关发送浏览器之间的文本/数据/ JSON什么。 你能不能帮我写了各种各样的简单的Hello World,只是从一个浏览器的一些数据发送到另一个WebbRTC?

Answer 1:

这是一个在黑暗中刺,但最新的Web API编辑草案DataChannel接口作为的一部分, 对等网络数据API 。

然而,目前的工作草案没有这个API,所以它可能是非常新的尚未得到执行。



Answer 2:

DataChannel现在已经在Firefox(18岁以上)和Chrome(25+)来实现,但它仍然是初期。

欲了解更多信息,请参阅HTML5岩石文章开始支持WebRTC 。



Answer 3:

此功能尚未加入任何航运的WebRTC实现来实现。 正如其他海报指出,现在有最新的WebRTC编辑草案DataChannel API,但是这方面的协议尚在制定上。 希望看到这个API今年住在Chrome和Firefox之后。



Answer 4:

这是一个老问题,但因为我开始学习的WebRTC,我将试图回答这个问题。

首先,一些误解:

这听起来像的We​​bSockets,但没有一台服务器

没有办法,任何数据都可以的WebRTC同行之间之前的一些信息被转移(媒体会话管理,节点的网络配置/多媒体功能)已被正确交换和协商。 要做到这一点,你需要一台服务器和信令 (这不是的WebRTC的一部分:你可以实现你想要的方式)。

当信令完成后,你需要创建RTCPeerConnection像这样的东西:

if (navigator.webkitGetUserMedia) {
   RTCPeerConnection = webkitRTCPeerConnection;
} else if(navigator.mozGetUserMedia){
   RTCPeerConnection = mozRTCPeerConnection;
   RTCSessionDescription = mozRTCSessionDescription;
   RTCIceCandidate = mozRTCIceCandidate;
}

然后:

var connection = new RTCPeerConnection(servers);

在这之后您可以将您的数据信道添加到该PeerConnection等:

var dataChannel = connection.createDataChannel("channelName",{ reliable: true });

当做到这一点,你只需调用sendChannel.send('Any data you want'); 这将发送给您想要的任何数据。

如果有什么事情,我发现这本书真正有用的 。 它留下了很多悬而未决的问题,但对于第一次启动是好的。



Answer 5:

我相信马特已经知道,但对于谷歌嘉宾:是的,你可以,期运用DataChannels。

在你身边:

channel = somePeerConnection.createDataChannel("a Label");
channel.onopen = function() { channel.send("any thing") };

另一方面:

somePeerConnection.ondatachannel = function (evt) {
   evt.channel.onmessage = function (evt) {
       alert( evt.data );
   };
};

看到这个例子:

  • http://www.w3.org/TR/webrtc/#examples
  • https://hacks.mozilla.org/2012/11/progress-update-on-webrtc-for-firefox-on-desktop/#file-datachannels-js-LC12


Answer 6:

http://peerjs.com/在不断发展,并为您喜欢的语法浏览器实例之间的P2P数据传输的WebSocket



Answer 7:

如贾斯汀所示,协议和API仍然被确定下来; 在最新的IETF我提交了草案的JS API下方的次要协议。 最终的形式可能会非常接近在编辑器中的草案目前的提案,但你可能需要等待的“onopened”从接收的一面。

该API是仿照WebSocket的API,以缓解从WebSocket的实施DataChannels移动代码,尽管WebSocket的不是所有的项目结转(如URL),显然DataChannel在具有不可靠的或做的WebSockets增加了一些能力不部分可靠的数据。



文章来源: Transferring JSON between browsers with WebRTC