全球定位: webrtc音视频通话(一)搭建turn服务器
webrtc音视频通话(二)简单音视频通话 webrtc音视频通话(三)整合websocket
在学习webrtc之前呢,需要对websocket有一定基础,如果还不会websocket的同学,请转到
springboot整合websocket(一)简单聊天室
将前两部分看下就能使用websocket了。
git地址
温馨提示
本文通过其他参考资料(其他博客、官网等)实践并分享。在安装一些文件的时候,版本请尽量和我保持一致。
第一章其实就是搭建环境,暂不需要写代码。
我因版本问题搞了一下午,最后降了版本才成功的。
另外,我们需要一台服务器,外网能访问的那种,可以在阿里云或者腾讯云租一台。
1、webrtc的简单概念
上述序列中,WebRTC并不提供Stun服务器和Signal服务器,服务器端需要自己实现。Stun服务器可以用google提供的实现stun协议的测试服务器(stun:http://stun.l.google.com:19302),Signal服务器则完全需要自己实现了,它需要在ClientA和ClientB之间传送彼此的SDP信息和candidate信息,ClientA和ClientB通过这些信息建立P2P连接来传送音视频数据。由于网络环境的复杂性,并不是所有的客户端之间都能够建立P2P连接,这种情况下就需要有个relay服务器做音视频数据的中转。
而Signal服务器其实就是我们的websocket,stun服务器其实就是webrtc啦。
图中的流程如下(比较长哈,大家粗略看下,有个概念,之后还有简化版的)
-
ClientA首先创建PeerConnection对象,然后打开本地音视频设备,将音视频数据封装成MediaStream添加到PeerConnection中。
-
ClientA调用PeerCo