公司的需求,实现一个安卓端的远程控制,就是一个手机控制另一台手机(像华为小米之类的厂商都已经实现了),我负责后端的方案。
一开始我想通过 UDP 打洞来实现,但据公司的人说某种类型下的 NAT 会导致打洞无效,所以需要服务器中转视频流。
按我对这个问题的理解,中转数据的实现不难,码率调低的话宽带应该只需要 2MB 左右(基于我看直播的体验),而且用户也不会很多,服务器不需要硬盘 IO,只需要转发数据所以性能应该不会是问题。
但据了解,传送这样的实时数据应该是需要用 UDP,避免 TCP 的重传机制造成的延迟,但使用 UDP 来容忍丢包的话,我不知道安卓端能不能实现播放缺少一定数据的视频(主要是公司安卓开发水平不怎么样),用 tcp 的话,需要改用 QUIC 之类的协议进行加速?
后端用 java 写的话,应该是要用 netty 、vertx 之类的网络框架?不再使用 spring boot ?有什么开源项目可以参考参考?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.