# wsrpc_tests **Repository Path**: PatchLion_admin/wsrpc_tests ## Basic Information - **Project Name**: wsrpc_tests - **Description**: WSRPC_TESTS - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-01 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WSRPC示例工程(模拟暖通环控数据监控系统) 基于 WSRPC (WebSocket RPC) 的示例工程,模拟暖通环控数据监控系统,支持多平台编译(Linux x86_64、WebAssembly 单线程)。 ## 项目结构 ``` server_with_grpc/ ├── server/ # gRPC 后端服务 │ └── hvac_server.py # HVAC 数据服务(Python) ├── wsserver/ # WSRPC 服务器(C++/Qt6) │ ├── src/ # 源代码 │ ├── CMakeLists.txt # 构建配置 │ └── build/ # 编译输出 ├── wsclient/ # WSRPC 客户端(C++/Qt6) │ ├── src/ # 源代码 │ ├── translations/ # 国际化翻译文件 │ └── CMakeLists.txt # 构建配置 ├── 1.build_wsserver.sh # wsserver 编译脚本 ├── 2.build_wsclient.sh # wsclient 多平台编译脚本 ├── 3.run_grpc_server.sh # 启动 gRPC 后端服务 ├── 4.run_wsserver.sh # 启动 WSRPC 服务器 ├── 5.run_wsclient.sh # 启动客户端 (gcc64) ├── 6.run_wsclient_wasm.sh # 启动客户端 (WASM) └── README.md # 项目说明文档 ``` ## 技术栈 | 组件 | 技术 | 版本 | |------|------|------| | GUI 框架 | Qt | 6.x | | RPC 框架 | WSRPC | - | | 数据序列化 | Protocol Buffers | 3.x | | WebAssembly | Emscripten | 3.x | ## 服务架构 ``` ┌─────────────────┐ WSRPC ┌─────────────────┐ gRPC ┌─────────────────┐ │ wsclient │ ──────────────>│ wsserver │ ──────────────>│ hvac_server │ │ (Qt6 客户端) │ ws://8765 │ (WSRPC 网关) │ localhost:50051 │ (Python后端) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ## 编译说明 ### 编译客户端(wsclient) 支持两种编译目标: ```bash # 编译 gcc64 版本 ./2.build_wsclient.sh --gcc64 # 编译 WASM 单线程版本 ./2.build_wsclient.sh --wasm-st # 编译所有版本 ./2.build_wsclient.sh --all # 清理构建目录 ./2.build_wsclient.sh --clean # 显示帮助信息 ./2.build_wsclient.sh --help ``` ### 编译服务器(wsserver) ```bash # 使用编译脚本 ./1.build_wsserver.sh # 或手动编译 cd wsserver mkdir -p build && cd build cmake .. make -j$(nproc) ``` #### 配置文件 wsserver 需要配置文件来连接 gRPC 后端服务: ```bash # 编译完成后,需要将配置文件复制到构建目录 cp wsserver/src/protos/hvac.grpcconfig.ini wsserver/build/ ``` 配置文件内容: ```ini [Configs] host=localhost port=50051 ``` ## 运行说明 ### 启动后端服务 ```bash # 1. 启动 HVAC gRPC 后端服务 ./3.run_grpc_server.sh # 2. 启动 WSRPC 服务器 ./4.run_wsserver.sh # 3. 启动客户端 (gcc64) ./5.run_wsclient.sh # 4. 启动客户端 (WASM,需要在浏览器中访问) ./6.run_wsclient_wasm.sh ``` ### 运行脚本说明 | 脚本 | 功能 | 说明 | |------|------|------| | `3.run_grpc_server.sh` | 启动 gRPC 后端服务 | 监听端口 50051 | | `4.run_wsserver.sh` | 启动 WSRPC 服务器 | 监听端口 8765 | | `5.run_wsclient.sh` | 启动客户端 (gcc64) | 连接到 localhost:8765 | | `6.run_wsclient_wasm.sh` | 启动 WASM 客户端 | 通过 Python HTTP 服务器提供服务 | ### 服务端口 | 服务 | 端口 | 协议 | |------|------|------| | hvac_server | 50051 | gRPC | | wsserver | 8765 | WebSocket | | wsclient | 8765 | WebSocket (连接到 wsserver) | ## 功能特性 - ✅ 实时数据监控 - ✅ 流式数据推送 - ✅ 主机信息展示(CPU/内存/磁盘占用) - ✅ 大屏幕监控模式 - ✅ 自动刷新与重连机制 - ✅ 国际化支持(中英文) - ✅ 多平台支持(Linux、WebAssembly) ## 国际化 项目使用 Qt 的国际化机制: 1. 默认语言:英文 2. 中文翻译:`translations/wsclient_zh_CN.qm` 3. 系统语言为中文时自动加载中文翻译 ## 依赖安装 ### Qt6 ```bash # Ubuntu/Debian sudo apt install qt6-base-dev qt6-websockets-dev qt6-tools-dev # 通过 Qt 官方安装器安装(推荐) # https://www.qt.io/download-open-source ``` ### Emscripten(用于 WASM 编译) ```bash git clone https://github.com/emscripten-core/emsdk.git cd emsdk ./emsdk install latest ./emsdk activate latest source emsdk_env.sh ``` ### Protocol Buffers ```bash sudo apt install libprotobuf-dev protobuf-compiler ``` ### WSRPC ```bash # WSRPC 库需安装到 /usr/local/wsrpc # 或通过 WSRPC_CLIENT_ROOT 环境变量指定路径 ```