# VRVehicle **Repository Path**: zjx-mail/VRVehicle ## Basic Information - **Project Name**: VRVehicle - **Description**: VR远程控制小车的总仓库,负责云端、客户端、设备端版本的管理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-08-16 - **Last Updated**: 2024-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## VR远程控制小车 ------------------------------------------------ 该项目由三部分组成客户端,云端以及设备端 ### 概要 #### Client - 客户端需要通过云端分别拉取设备端的视频流和音频流,其中视频流通过Darwin流媒体服务,音频流通过websocket(或者仅音视频流,通过Darwin流媒体服务)。 - 发送控制信令:通过websocket #### Device - 设备端需要向云端推视频流和音频流,其中视频流推到Darwain流媒体服务,音频流通过websocket(或仅音视频流,通过Darwin流媒体服务)。 - 接受控制信令:通过websocket #### Cloud - 负责管理客户端和设备端设备以及之间的相互通信。 ### 使用方式 1. `git clone https://gitee.com/likangGit/VRVehicle.git` 1. `git submodule update --init --recursive `初始化你需要的模块 ### 实现要点 - device同一时间只允许受一人控制 - device应先使用存储的上一次的session_id通过WebSocket尝试登陆,若失败,再向服务器发起HTTP注册请求。 - device注册时如遇id已存在,可能是本身已注册,session_id未过期,此时应使用上次的session_id尝试重连。如未记录seesion_id,可对自身id稍加改编/修饰,或稍等一会儿再尝试注册。 - device须保证只要有网,就一定处在与server已连接并可以接受指令的状态,或者处在正在重连的状态。不能处于假死状态(心跳断了但是不重连)。 - device登陆时先用上一次的session_id(如有)尝试重连。 - server维护在册device、session_id、device 控制者的对应关系。 - server转发信令时,响应client的handler要能够获取到其控制的device的handler上下文。 ### 信令描述 详细描述见[《会话协议.md》](%E4%BC%9A%E8%AF%9D%E5%8D%8F%E8%AE%AE.md)、[《流媒体协议草稿.txt》](%E6%B5%81%E5%AA%92%E4%BD%93%E5%8D%8F%E8%AE%AE%E8%8D%89%E7%A8%BF.txt)