webrtc入门:14.pion webrtc中Data Channels示例

Data Channels

pion webrtc 中有非常多的示例,Data Channels 就是其中的一个,当我们第一次打开pion webrtc的示例时,可能会有点不知所措,不知道他要让我们干什么。

当然,你只要把第一个示例的过程走通了,接下来的示例就比较简单了。

打开 Data Channels ,如下的界面:

在这里插入图片描述
如果 Browser base64 Session Description 一直没法生成,或者生成的比较慢,试着把 demo.js中的代码:

const pc = new RTCPeerConnection({
  iceServers: [{
    urls: 'stun:stun.l.google.com:19302'
  }]
})

iceServers的去掉,因为我们这里只是在局域网中,不需要穿透。

Browser base64 Session Description 到底是个啥东西呢?其实就是我们的sdp。生成了sdp后,需要跟另外一个客户端进行交换。

再来看下,这里生成sdp的技巧:

pc.onicecandidate = event => {
  if (event.candidate === null) {
    document.getElementById('localSessionDescription').value = btoa(JSON.stringify(pc.localDescription))
  }
}

为啥看不到正常sdp的格式,因为他JSON.stringify(pc.localDescription)了,为什么这样做,这是为了传输,而且,我们这里是在pc.onicecandidate 中获取sdp这个pc.localDescription 中就已经包含ice的内容了,这点是让我们值得思考的,以为他跟我们以前的流程是不一样的。

这样做的好处是少交换了一次 ice,生成的sdp交换到客户端,也就是main.go程序。

在这里插入图片描述

这样进行修改。

调试起来,生成answersdp

在这里插入代码片

填入到web中的Golang base64 Session Description,启动:

你就会看到,Golang 的客户端在给浏览器不断的发送数据。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值