V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Nillouise
V2EX  ›  Android

怎么实现手机端的远程协助(或者说远程控制)功能?有什么开源代码参考吗?

  •  
  •   Nillouise · 2021-03-04 15:28:20 +08:00 · 8722 次点击
    这是一个创建于 1362 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司的需求,实现一个安卓端的远程控制,就是一个手机控制另一台手机(像华为小米之类的厂商都已经实现了),我负责后端的方案。

    一开始我想通过 UDP 打洞来实现,但据公司的人说某种类型下的 NAT 会导致打洞无效,所以需要服务器中转视频流。

    按我对这个问题的理解,中转数据的实现不难,码率调低的话宽带应该只需要 2MB 左右(基于我看直播的体验),而且用户也不会很多,服务器不需要硬盘 IO,只需要转发数据所以性能应该不会是问题。

    但据了解,传送这样的实时数据应该是需要用 UDP,避免 TCP 的重传机制造成的延迟,但使用 UDP 来容忍丢包的话,我不知道安卓端能不能实现播放缺少一定数据的视频(主要是公司安卓开发水平不怎么样),用 tcp 的话,需要改用 QUIC 之类的协议进行加速?

    后端用 java 写的话,应该是要用 netty 、vertx 之类的网络框架?不再使用 spring boot ?有什么开源项目可以参考参考?

    3 条回复    2021-03-08 13:36:48 +08:00
    PUBG98k
        1
    PUBG98k  
       2021-03-04 18:35:59 +08:00
    还需要 root
    PUBG98k
        2
    PUBG98k  
       2021-03-04 18:36:57 +08:00
    TCP 中转 + UDP 打洞.
    但是手机的移动网络,基本上打洞成功率很低.
    在 PC 上比较容易打洞成功.
    Nillouise
        3
    Nillouise  
    OP
       2021-03-08 13:36:48 +08:00
    @PUBG98k 目前不打算做打洞了,会增加复杂度,只做中转,研究了下,似乎可以用 webrtc 、rtmp 之类的协议
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2670 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 15:35 · PVG 23:35 · LAX 07:35 · JFK 10:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.