# seichat **Repository Path**: xdx_coder_dev/seichat ## Basic Information - **Project Name**: seichat - **Description**: 即时聊天项目 (IM) 的 api - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-22 - **Last Updated**: 2025-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SeiChat ## 介绍 SeiChat 是一个基于 Golang 实现的即时通讯系统,支持用户注册、登录、添加好友、创建和加入群组以及发送消息等功能。该项目适用于希望快速搭建基础聊天功能的开发者。 ## 主要功能 - **用户管理**:注册、登录、更新和删除用户信息。 - **好友管理**:添加好友、获取好友列表。 - **群组管理**:创建群组、加入群组、获取群组列表。 - **消息传递**:支持单聊消息的发送与接收。 - **文件上传**:支持图片上传功能。 ## 技术栈 - **后端语言**:Go - **Web 框架**:Gin - **数据库**:MySQL(使用 GORM)、Redis - **消息传递**:WebSocket - **身份验证**:JWT - **代码结构**:模块化设计,包含 handler、service、dao 等层 ## 软件架构 项目采用典型的分层架构: - **Handler 层**:处理 HTTP 请求,调用 Service 层。 - **Service 层**:实现业务逻辑,调用 DAO 层。 - **DAO 层**:负责与数据库交互,执行 CRUD 操作。 - **Model 层**:定义数据模型。 - **Global 层**:全局变量和配置。 ## 安装教程 1. **克隆项目** ```bash git clone https://gitee.com/your-repo/seichat.git cd seichat ``` 2. **安装依赖** ```bash go mod tidy ``` 3. **配置数据库** - 修改 `etc/im.yaml` 文件中的 MySQL 和 Redis 配置。 4. **初始化数据库** - 确保 MySQL 服务已启动,并根据配置创建数据库。 5. **运行项目** ```bash go run main.go ``` ## 接口文档 ### 用户模块 - **注册用户**:`POST /user/new` - **用户登录**:`POST /user/login` - **获取用户列表**:`GET /user/list` - **更新用户信息**:`POST /user/update` - **删除用户**:`POST /user/delete` ### 好友模块 - **添加好友**:`POST /relation/add` - **通过用户名添加好友**:`POST /relation/add_by_name` - **获取好友列表**:`GET /relation/friend_list/:userId` ### 群组模块 - **创建群组**:`POST /community/new` - **加入群组**:`POST /community/join` - **获取用户群组列表**:`GET /community/list/:ownerId` ### 消息模块 - **发送消息**:`POST /message/send` - **获取历史消息**:`GET /message/history` ### 文件上传模块 - **上传图片**:`POST /upload/image` ## 使用示例 1. **注册用户** ```bash curl -X POST http://localhost:8080/user/new -d '{"name":"testuser", "password":"testpass"}' ``` 2. **用户登录** ```bash curl -X POST http://localhost:8080/user/login -d '{"name":"testuser", "password":"testpass"}' ``` 3. **添加好友** ```bash curl -X POST http://localhost:8080/relation/add -d '{"userID":1, "targetID":2}' ``` 4. **发送消息** ```bash curl -X POST http://localhost:8080/message/send -d '{"key":"user_1_to_user_2", "msg":"Hello, World!"}' ``` ## 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 项目。 2. 创建新分支 (`git checkout -b feature/new-feature`)。 3. 提交更改 (`git commit -am 'Add some feature'`)。 4. 推送分支 (`git push origin feature/new-feature`)。 5. 提交 Pull Request。 ## Gitee 特性 - 支持 Gitee 仓库集成。 - 提供详细的项目文档和示例代码。 - 支持在线查看和协作开发。 ## 许可证 本项目采用 MIT 许可证。详情请查看 LICENSE 文件。