咱們在經過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得到咱們的技術動態。
接口