【发布时间】:2021-04-05 10:50:10
【问题描述】:
目前有一个功能正常的 Android 应用,用户可以在其中互相发送消息、发送文件和视频通话。这是通过通过普通的旧 Java 套接字 (TCP) 发送对象来实现的。从一些研究来看,现有软件(例如 Discord 或 Signal)似乎使用 WebRTC 或他们自己的 fork/类似库。
鉴于 Discord 最初是使用 Web 技术(React 堆栈)开发的,然后使用 Electron 或 React Native 转换为原生,因此使用 WebRTC 是有意义的。但是对于我的用例,使用上述库是否有先天优势,无论是可扩展性、安全性等,还是我的实现是否合适?
【问题讨论】:
-
基于 TCP 的视频通话需要非常好的网络连接;首先,WebRTC 增加了对通信条件的弹性。
-
WebRTC 不是通过利用 UDP 来做到这一点的吗?如果是这样,弹性不是 WebRTC 本身固有的东西的产物,它可以单独实现吗?
-
通过 UDP 构建自己的通信服务并不容易;添加 FEC 和带宽控制(包括调整摄像头和编码器)使这项任务值得几个人年。