单通道 Go WebRTC服务端拉流接口无响应致使程序堵塞,如何处理?

咱们在经过GO语言开发webrtc服务时,使用js进行摄像头推流调用go服务端http,交换sdp信息,先把摄像头流推到服务端进行webrtc交互,再调用另外go http服务进行拉流。web

87.png

第一次进行http拉流,webrtc 会话描述进行过交换,可是测试期间咱们发现,若是此时再打开浏览器进行http 会话描述,go服务端会卡住,致使浏览器等段时间会超时错误。浏览器

此处的流程应该是下面这样的:函数

一、Go 中webrtc拿到的流会放到一个全局变量中,以下:测试

64.png

二、经过go的接口交换会话描述,再使用webrtc回调函数方法,拿到流就往里面写数据。线程

65.png

问题就出在第二步,咱们在使用拉流接口时也是交换会话描述,从第二步中go写流数据的接口拿到流,这样浏览器在进行拉流操做时,接口无响应,致使浏览器超时。视频

66.png

找到问题,解决问题也比较简单,把go保存的流开个线程,一直往里写数据,这样就不会形成堵塞了。blog

67.png

咱们开发的webrtc-client就已经通过了屡次测试,在现有的视频播放平台上有了新的飞跃,而新型的与WebRTC相结合的EasyScreenLive同屏服务将在视频播放的流畅度和延时方面有更加优越的体现,你们能够经过关注Github得到咱们的技术动态。
 接口

相关文章
相关标签/搜索