天天看点

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日

继续阅读