契机
是有时候需要和朋友连麦打游戏,但往往有些朋友不能够连接 discord 。
之前站内有人发过了自己实现的 webrtc 语音通话, 有使用过, 不过和朋友连接时已经连不上了,似乎已经不再维护了。
遂
自己开始尝试研究搞一个简陋的 P2P 语音网页,从纯测试连接 demo 到用 vue 实现了个完整功能的简陋 demo.
功能支持
- 语音视频通话
- 文字、文件传输
- 分享屏幕
- 多人聊天室 (Mesh 结构)
说到底就是利用 浏览器 JS API 建立一个 P2P 连接, 在这个连接上附加一些 [语音视频流] 传输,再利用 [数据通道] 实现文件的传输。
因为数据直接传输不经过服务器, 所以如果两人网络状况较好体验佳. 局域网也可以使用。
不过也有大概率连接不上,取决于网络运营商和你设备的 nat 穿透情况
比起语音视频功能,文件传输对我还是很有用,比如在帮助朋友 [远程桌面] 解决一些问题是,他的电脑又没有相关软件进行排查,糟糕的网盘和中转环境经常很难将文件传输到达, todesk 前不久又限制付费用户传输文件了, 这个就很好用。
到目前为止
东西倒是写完了, 以上的个人需求, 没一个用上,有了就备不时之需吧。
Github
有需要的朋友自己玩玩
https://github.com/ellermister/ishoni