# vbspro_rpc **Repository Path**: haloos/vbspro_rpc ## Basic Information - **Project Name**: vbspro_rpc - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-30 - **Last Updated**: 2025-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vbspro_rpc代码仓库说明 ## 1. 代码仓库简介 - RPC,全称为 Remote Procedure Call,是VBSPro工程的核心组件之一 - VBSPro-RPC采用client/server架构,使用户能够通过请求/响应或注册/通知机制等方式进行数据传输 - 每个server中注册一个服务对象,多个server组成一个远程service - 每个client绑定一个service proxy,对应远程service中的一个server,并可调用server中服务对象的方法 - service proxy与service之间可通过TCP协议、Unix Domain Socket(UDS)协议或RTPS协议进行数据传输。 **RPC特性:** 1. 支持基础请求-响应模型 - 支持同步发送,用户完成接口实现,自动回复响应 - 支持异步发送,用户完成接口实现,手动调用发送接口回复响应 - 支持异步流式发送(单请求多响应),用户完成接口实现,可手动在回调内外多次调用发送接口回复响应 - 支持Fire&Forget发送(请求无响应),用户完成接口实现,无需回复响应 2. 支持事件发布-订阅模型 3. 支持用户定义IDL生成代码 - 用户自定义数据类型 - 工具生成相应client调用接口及server服务对象类 4. 支持请求超时检测 5. 支持多种传输协议 - 当前支持TCP协议、UDS(Unix Domain Socket)协议及RTPS协议 6. 支持长连接及连接复用 - 支持心跳检测server保活 - 支持client断开连接后自动重连 - 支持多个client/server使用同一条TCP链路传输数据 7. 支持服务注册/服务发现 ## 2. 代码目录 vbspro_rpc 源代码在 haloosspace/vbs/vbspro/rpc 目录下,目录结构如下图所示: ```shell rpc ├── README.md # 这个是RPC仓库的readme ├── CMakeLists.txt # cmake编译脚本 ├── include │ ├── rpc │ │ ├── client # client相关头文件 │ │ ├── discovery # 服务注册/发现相关头文件 │ │ ├── server # server相关头文件 │ │ ├── transports # 传输层相关头文件 │ │ ├── utils # RPC常用工具相关头文件 │ │ └── xmlparser # XML解析相关头文件 │ └── erpc # rpc目录软链接,内容与rpc目录相同 └── src ├── client # client相关实现,包括client及proxy manage block ├── discovery # 服务注册/发现相关实现,包括discovery manager、discovery proxy及discovery stub ├── server # server相关实现,包括server、server manage block及server传输层管理器 ├── strategies # 相关策略实现,当前为线程池 ├── transports # 传输层相关实现,包括client、server和发现模块的传输层实现 ├── utils # 常用工具相关实现,包括常用数据类型、日志、定时器等 └── xmlparser # XML解析相关实现 ``` ## 3. 使用入门 详细的使用指南和开发文档请参考:VBSPro 快速开始