# 微服务---即时通讯系统WeChat **Repository Path**: liuhaodon/we_chat ## Basic Information - **Project Name**: 微服务---即时通讯系统WeChat - **Description**: 本项目是一个基于 C++ 的微信服务端实现,包含多个模块,用于处理用户消息、好友关系、文件存储、语音识别、网关服务等功能。项目使用了 Protobuf 进行数据序列化,结合 ODB 实现数据库持久化,并通过 RabbitMQ、Redis、etcd 等中间件实现分布式通信与服务发现。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-07-02 - **Last Updated**: 2025-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微信服务端项目文档 ## 项目概述 本项目是微信服务端的实现,主要负责消息转发、好友管理、文件存储以及语音识别等核心功能的处理。项目采用C++语言实现,结合Protobuf进行数据序列化,使用AMQP-CPP库与RabbitMQ进行通信,同时依赖spdlog进行日志记录,以及etcd进行服务发现。 ## 模块结构 - **Third_Test模块** - **AMQP-CPP**:RabbitMQ C++客户端库 - **jsoncpp**:JSON解析库 - **spdlog**:日志记录库 - **etcd**:etcd客户端库 - **baidu_aip_cpp**:百度语音识别SDK - **server模块** - **Message_Storage**:消息存储服务 - **Transmite**:消息转发服务 - **friend**:好友管理服务 - **file_store**:文件存储服务 - **gateway**:网关服务 - **Speech_Sdk**:语音识别服务 ## 编译与构建 本项目使用CMake进行构建,各模块的CMakeLists.txt文件位于各自目录下。编译步骤如下: 1. 创建构建目录并进入 2. 运行`cmake ..`生成Makefile 3. 运行`make`进行编译 ## 启动服务 ### 单个服务启动 可以单独启动某个服务,例如启动消息服务: ```bash ./build/message_server ``` ### 所有服务启动 使用`all_server`脚本启动所有服务: ```bash ./all_server ``` ## 测试客户端 ### 消息服务测试 位于`Third_Test/Common`目录,使用`channel.hpp`和`message.pb.h`进行测试。 ### 好友服务测试 使用`friend.pb.h`和`channel.hpp`进行测试。 ### 文件服务测试 使用`file.pb.h`和`channel.hpp`进行测试。 ## 依赖组件 - **AMQP-CPP**:用于与RabbitMQ交互 - **jsoncpp**:用于JSON数据的解析与生成 - **spdlog**:用于日志记录 - **etcd**:用于服务发现和配置共享 - **baidu_aip_cpp**:用于语音识别 ## 配置文件 - 日志配置文件位于`Third_Test/spdlog/log.conf` - RabbitMQ和Etcd的配置通过环境变量或命令行参数传递 ## 注意事项 - 确保所有第三方库已正确安装 - 配置好RabbitMQ和etcd服务 - 检查`CMakeLists.txt`文件以确认依赖项是否正确配置 ## 贡献指南 欢迎贡献代码。请确保遵循以下步骤: 1. Fork仓库 2. 创建feature分支 3. 提交代码变更 4. 创建Pull Request ## 许可证 本项目遵循MIT License,请参阅LICENSE文件获取详细信息。