怎么知道webrtc的数据是走的中继还是走的p2p
发布网友
发布时间:2022-04-21 05:30
我来回答
共2个回答
热心网友
时间:2022-06-18 05:52
吐槽, 你的分类错了, 导致不能贴代码。
github:
priologic/easyrtc
webRTC/webRTC.io
自己开发推荐使用priologic/easyrtc
只是玩玩 对于webRTC.io使用简单
npm install webrtc.io
Client
<video id="local" autoplay="autoplay"></video>
<video id="remote" autoplay="autoplay"></video>
<script src="/webrtc.io.js"></script>
<script>
// note: make sure hostname available to all connecting clients
// (ie. probably not `localhost`)
rtc.connect('ws://yourserveraddress:8001');
rtc.createStream({"video": true, "audio":false}, function(stream){
// get local stream for manipulation
rtc.attachStream(stream, 'local');
});
rtc.on('add remote stream', function(stream){
// show the remote video
rtc.attachStream(stream, 'remote');
});
// more rtc callbacks are available
</script>
Server
var webRTC = require('webrtc.io').listen(8001);
//then a bunch of callbacks are available
热心网友
时间:2022-06-18 05:53
你测试的场景是1对1.
简单的说,一个 Peer 发起一个Call. 由于NAT 的缘故,他会先请求 TURN Server 服务器查询自己的公网IP地址。如果有公网IP地址,对方也有公网IP地址,就可以愉快的走P2P了。这个场景信令走了Could上面的TURN Server。建立了链接。而Media Data 没有走Cloud. 这就是你说的走P2P.
如果其中的任何一个Peer没有公网地址,就建立不了链接。会把请求发送给STUN Server. STURN Server 是部署到Cloud上的.他永远有公网IP地址,它是可触答的。而STURN Server是要负责转发media data的。这就是你说的走中继。
那怎么判断呢: chrome 支持日志诊断的,要看日志里面有没有对应的公网IP地址。
你可以看看:
网页链接
还有一片关于WebRTC框架的介绍:
网页链接