咱们在经过GO语言开发webrtc服务时,使用js进行摄像头推流调用go服务端http,交换sdp信息,先把摄像头流推到服务端进行webrtc交互,再调用另外go http服务进行拉流。web
第一次进行http拉流,webrtc 会话描述进行过交换,可是测试期间咱们发现,若是此时再打开浏览器进行http 会话描述,go服务端会卡住,致使浏览器等段时间会超时错误。浏览器
此处的流程应该是下面这样的:函数
一、Go 中webrtc拿到的流会放到一个全局变量中,以下:测试
二、经过go的接口交换会话描述,再使用webrtc回调函数方法,拿到流就往里面写数据。线程
问题就出在第二步,咱们在使用拉流接口时也是交换会话描述,从第二步中go写流数据的接口拿到流,这样浏览器在进行拉流操做时,接口无响应,致使浏览器超时。视频
找到问题,解决问题也比较简单,把go保存的流开个线程,一直往里写数据,这样就不会形成堵塞了。blog
咱们开发的webrtc-client就已经通过了屡次测试,在现有的视频播放平台上有了新的飞跃,而新型的与WebRTC相结合的EasyScreenLive同屏服务将在视频播放的流畅度和延时方面有更加优越的体现,你们能够经过关注Github得到咱们的技术动态。
接口