单通道 Go WebRTC服务端拉流接口无响应导致程序堵塞,如何处理?
2021/5/7 20:28:36
本文主要是介绍单通道 Go WebRTC服务端拉流接口无响应导致程序堵塞,如何处理?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们在通过GO语言开发webrtc服务时,使用js进行摄像头推流调用go服务端http,交换sdp信息,先把摄像头流推到服务端进行webrtc交互,再调用另外go http服务进行拉流。
第一次进行http拉流,webrtc 会话描述进行过交换,但是测试期间我们发现,如果此时再打开浏览器进行http 会话描述,go服务端会卡住,导致浏览器等段时间会超时错误。
此处的流程应该是下面这样的:
1、Go 中webrtc拿到的流会放到一个全局变量中,如下:
2、通过go的接口交换会话描述,再使用webrtc回调函数方法,拿到流就往里面写数据。
问题就出在第二步,我们在使用拉流接口时也是交换会话描述,从第二步中go写流数据的接口拿到流,这样浏览器在进行拉流操作时,接口无响应,导致浏览器超时。
找到问题,解决问题也比较简单,把go保存的流开个线程,一直往里写数据,这样就不会造成堵塞了。
我们开发的webrtc-client就已经经过了多次测试,在现有的视频播放平台上有了新的飞跃,而新型的与WebRTC相结合的EasyScreenLive同屏服务将在视频播放的流畅度和延时方面有更加优越的体现,大家可以通过关注Github获得我们的技术动态。
这篇关于单通道 Go WebRTC服务端拉流接口无响应导致程序堵塞,如何处理?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-01got an unexpected keyword argument
- 2024-03-30维多利亚的秘密 golang入坑系统
- 2024-03-29mongodb sort by date
- 2024-03-29go swagger
- 2024-03-25mongodb cdc
- 2024-03-25how to use go in vscode
- 2024-03-22mongooseserverselectionerror: connect econnrefused ::1:27017
- 2024-03-21pymongo insert_many
- 2024-03-18projection mongodb
- 2024-03-14clickhouse-go