天天看點

Peer Stream 源碼備份

上一篇備份了其餘的9個檔案,這一篇備份一下最後一個peer-stream.js這個600+行,20KB的主要前端檔案。

Peer Stream 源碼備份

先看一下這個JS檔案的結構,主要就是用WebComponnets API定義了一個繼承自HTMLVideoElement的子類,其中包含了很多方法,将像素流的邏輯深深的隐藏在<video>标簽中,同時将WebRTC的生命周期與标簽的生命周期綁定,完美的劃分了與前端開發人員的責任邊界,因為無論前端對像素流有怎樣的需求,peer-stream暴露出來的就隻有一個簡單的<video>标簽,樣式什麼的随便怎麼設定都不會影響到像素流的邏輯,各種函數的命名空間也都是這個标簽,不會出現調用的時序問題,綁定生命周期的設計思想也找不到任何反駁的理由,堪稱完美設計。

除此之外,無論是peer-stream.js還是signal.js,将注釋都去掉以後,找不到任何和虛幻引擎相關的資訊,讓前端對後端的環境一無所知,由此可以大大提升業務安全,生産環境下建議使用UglifyJS來壓縮代碼,壓縮後隻有12KB,但不建議使用其他的會修改變量名的打包工具,隻要能删除空白字元和注釋就足夠了,因為本身檔案也不大,下面是peer-stream.js的源代碼:

2021年10月18日

繼續閱讀