喵聊技术文档
文档版本:1.0
编制目的:供技术交接、第三方采购及研发团队查阅,说明项目构成、技术栈及第三方服务对接情况。
一、文档说明
本文档描述喵聊产品所包含的项目列表、各项目技术栈以及对接的第三方服务。配置项(如密钥、AppKey)以实际部署与各环境配置文件为准,文档中不列敏感信息,仅说明对接方与用途。
二、项目总览
喵聊由以下** 4 个仓库/项目**组成:
| 序号 | 项目/仓库名 | 类型 | 说明 |
|---|---|---|---|
| 1 | miaoliao-api | 后端服务 | 业务 API(客户端接口、管理端接口)、WebSocket 实时服务,多模块 Maven 工程 |
| 2 | miaoliao-web | 前端 | 内含管理后台(Admin)、H5(uni-app)、客服(Kefu)等子项目 |
| 3 | miaoliao-android | 移动端 | Android 原生 App,多 Module 结构 |
| 4 | miaoliao-ios | 移动端 | iOS 原生 App,工程名 NightChat,CocoaPods 管理依赖 |
三、各项目技术栈
3.1 miaoliao-api(后端)
| 类别 | 技术/组件 | 版本或说明 |
|---|---|---|
| 语言与运行时 | Java | 1.8 |
| 基础框架 | Spring Boot | 2.5.14 |
| Web 与安全 | Spring MVC、Spring Security(若依体系)、JWT(jjwt 0.9.1)、Kaptcha 验证码 | — |
| 数据访问 | MyBatis、MyBatis PageHelper | pagehelper-spring-boot-starter 1.4.3 |
| 连接池 | Druid | 1.2.11 |
| 定时任务 | 自研 Quartz 模块 | 与主版本一致 |
| 工具与扩展 | Lombok、Apache POI(Excel)、Velocity(代码生成)、Commons IO/FileUpload/Collections、UserAgentUtils、Oshi(系统信息) | — |
| 日志 | 阿里云 SLS(aliyun-log) | 0.6.149 |
模块结构:
- admin:后台管理服务(若依风格),打包为可执行 JAR,对接 miaoliao-web-admin。
- client:客户端 API 服务,为 Android/iOS App 提供 REST 接口(登录、用户、房间、礼物、支付、提现等)。
- websocket:独立 WebSocket 应用,提供聊天室、私信、管理消息等实时通道。
- framework:核心框架(Web、AOP、Druid、安全、验证码等)。
- system:系统域(用户、角色、权限、配置等业务与数据访问)。
- common:通用工具、常量、基础实体。
- quartz:定时任务定义与调度。
- generator:基于 Velocity 的代码生成器。
构建与打包: Maven 多模块,支持 profile:local / dev / prod。
3.2 miaoliao-web(前端)
3.2.1 miaoliao-web-admin(管理后台)
| 类别 | 技术/组件 | 版本或说明 |
|---|---|---|
| 框架 | Vue | 2.6.12 |
| 路由与状态 | Vue Router、Vuex | 3.4.9 / 3.6.0 |
| UI 与图表 | Element UI、ECharts | 2.15.8 / 4.9.0 |
| 请求与工具 | Axios、js-cookie、lodash、nprogress、screenfull、file-saver、clipboard、fuse.js、highlight.js、js-beautify、sortablejs、vuedraggable | — |
| 富文本与编辑 | wangEditor、vue-ueditor-wrap(UEditor) | — |
| 图片与媒体 | vue-cropper、svgaplayerweb、benz-amr-recorder | 支持裁剪、SVGA 动效、AMR 录音 |
| 安全与加密 | jsencrypt | 3.0.0-rc.1 |
| 构建 | Vue CLI、Babel、ESLint、Sass | Vue CLI 4.4.6 |
| 其他 | vue-count-to、vue-meta、vue-jsonp、@riophae/vue-treeselect | — |
第三方前端 SDK/服务(见第四节): 阿里 OSS(ali-oss)、腾讯 TRTC(trtc-sdk-v5)。
3.2.2 miaoliao-web-h5
| 类别 | 技术/组件 | 说明 |
|---|---|---|
| 框架 | uni-app | 支持 H5/App 等多端 |
| UI | uView UI | 组件库 |
| 构建 | 脚本区分环境 | local / dev / prod |
3.2.3 miaoliao-web-kefu
客服相关前端,具体技术栈以仓库内 package.json 及构建配置为准。
3.3 miaoliao-android
| 类别 | 技术/组件 | 版本或说明 |
|---|---|---|
| 语言 | Kotlin、Java | Kotlin 1.3.72 |
| 构建 | Gradle、Android Gradle Plugin | AGP 4.0.1 |
| 编译与目标 | compileSdk 30,minSdk 21,targetSdk 30 | — |
| 网络 | Retrofit、OkHttp、Okio、Gson、RxJava/RxAndroid | OkHttp 4.8.0,Retrofit 2.2.0 |
| UI 与布局 | AndroidX(AppCompat、ConstraintLayout、RecyclerView、CardView、Material)、SmartRefreshLayout、Glide、多种第三方 UI 库 | — |
| 本地存储 | LitePal | 3.0.0 |
| 图片与动效 | Glide、glide-transformations、SVGA、ExoPlayer、PhotoView、UCrop、ImagePicker、NineGridImageView | — |
| 其他基础 | EventBus、Multidex、LeakCanary(debug)、ZXing、RxPermissions、ConvenientBanner、Ticker 等 | — |
应用与模块:
- app:主应用,applicationId:
miaoliao.hzy.app,版本 1.2.0(versionCode 120)。 - chatlibrary:聊天能力。
- networklibrary:网络封装,依赖 osslibrary。
- osslibrary:阿里云 OSS 及阿里云实人/OCR 等(见第四节)。
- paylibrary:微信 SDK、支付宝 SDK(见第四节)。
- vodlibrary:腾讯云 LiteAV(直播/点播)。
- picture_library、ucrop:图片选择与裁剪。
- 其他:animplayer、RangeSeekBar、pickerview、tiui、mhui、wheelsruflibrary 等 UI/工具库。
3.4 miaoliao-ios
| 类别 | 技术/组件 | 版本或说明 |
|---|---|---|
| 平台 | iOS | 最低 13.0 |
| 工程与依赖 | Xcode、CocoaPods | 工程名 NightChat |
| 网络 | AFNetworking | 4.0.0 |
| 本地存储 | FMDB | — |
| UI 与布局 | Masonry、SDAutoLayout、MJRefresh、MJExtension、IQKeyboardManager、GKNavigationBar、JXCategoryViewExt、GKPageScrollView、SVProgressHUD、TTRangeSlider | — |
| 图片与动效 | SDWebImage、SDWebImageWebPCoder、FLAnimatedImage、SVGAPlayer | — |
| 响应式 | ReactiveObjC | — |
| WebSocket | SocketRocket | — |
第三方 iOS SDK(见第四节): 阿里云 OSS(AliyunOSSiOS)、腾讯云 TXLiteAVSDK_TRTC。
四、第三方服务对接
以下按服务商/类型列出各项目对接的第三方服务,便于商务与运维核对账号、配置与合规。
4.1 阿里云
| 服务 | 用途 | 使用项目 | 说明 |
|---|---|---|---|
| 阿里云 OSS | 对象存储(图片、语音、文件上传与 CDN 加速) | miaoliao-api(client/websocket 等)、miaoliao-web-admin、miaoliao-android(osslibrary)、miaoliao-ios(AliyunOSSiOS) | 配置 endpoint、bucket、AccessKey、CDN 域名等;管理后台与 App 均涉及上传与展示 |
| 阿里云 SLS | 日志服务(服务端日志采集与查询) | miaoliao-api | 依赖 aliyun-log,配置 project、logstore、endpoint(含内网 endpoint) |
| 阿里云实人/人脸/OCR | 实名认证、人脸核身、OCR(若使用) | miaoliao-android(osslibrary 内 aliyun-face 等 aar) | 以实际启用的能力为准 |
4.2 腾讯云
| 服务 | 用途 | 使用项目 | 说明 |
|---|---|---|---|
| 腾讯云 TRTC | 实时音视频(语音/视频通话、房间) | miaoliao-android(vodlibrary / LiteAV)、miaoliao-ios(TXLiteAVSDK_TRTC)、miaoliao-web-admin(trtc-sdk-v5) | SDK 集成与业务房间/用户管理;需配置 SDKAppID、密钥等 |
| 腾讯云音视频审核 | 实时音视频内容审核回调(违规处置) | miaoliao-api(client:RtcAuditCallbackController、AppRtcAuditService) | 回调验签(tencent.audit.rtc-callback-key)、违规处理逻辑 |
| 腾讯云 COS | 若审核/存储使用 COS(示例 URL 中出现 cos.ap-guangzhou) | miaoliao-api(审核回调中可能解析 TRTC 录制/截图 URL) | 与 TRTC 录制/存储配置相关 |
4.3 支付
| 服务 | 用途 | 使用项目 | 说明 |
|---|---|---|---|
| 微信支付 | 充值、打赏等支付 | miaoliao-api(支付回调 weChat)、miaoliao-android(paylibrary:wechat-sdk-android-with-mta) | 服务端配置 notify-url;App 端集成微信 SDK,需微信开放平台应用与支付商户号 |
| 支付宝支付 | 充值、打赏等支付 | miaoliao-api(支付回调 aliPay,openapi.alipay.com)、miaoliao-android(paylibrary:alipaySdk) | 服务端配置 api-url、notify-url;App 端集成支付宝 SDK,需支付宝开放平台应用与商户号 |
4.4 其他
| 服务/能力 | 用途 | 使用项目 | 说明 |
|---|---|---|---|
| WebSocket | 聊天室、私信、管理消息实时通道 | miaoliao-api(websocket 服务)、miaoliao-android、miaoliao-ios(SocketRocket) | 自建 WebSocket 服务,非第三方 SaaS |
| SVGA | 礼物等动效播放 | miaoliao-web-admin(svgaplayerweb)、miaoliao-android、miaoliao-ios(SVGAPlayer) | 动效格式与播放器,资源可存 OSS |
| 短信(未在代码中显式标注) | 验证码登录/注册 | 通常由服务端对接短信厂商 | 以实际配置的短信服务为准 |
五、第三方服务与项目对照表
| 第三方服务 | miaoliao-api | miaoliao-web-admin | miaoliao-android | miaoliao-ios |
|---|---|---|---|---|
| 阿里云 OSS | ✓ | ✓ | ✓ | ✓ |
| 阿里云 SLS | ✓ | — | — | — |
| 阿里云实人/OCR | — | — | ✓(库存在) | — |
| 腾讯云 TRTC | — | ✓ | ✓ | ✓ |
| 腾讯云音视频审核 | ✓ | — | — | — |
| 微信支付 | ✓(回调) | — | ✓ | 以实际集成为准 |
| 支付宝支付 | ✓(回调) | — | ✓ | 以实际集成为准 |
六、架构关系(简要)
┌─────────────────────────────────────────┐
│ 第三方服务 │
│ 阿里云(OSS/SLS) 腾讯云(TRTC/审核) │
│ 微信/支付宝 等 │
└──────────────────┬──────────────────────┘
│
┌──────────────────────────────────┼──────────────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌─────────────────┐ ┌──────────────┐
│ Android / iOS │ ◄─────────►│ miaoliao-api │ ◄─────────►│ miaoliao-web │
│ (App) │ HTTPS/ │ client │ HTTPS/ │ -admin │
│ │ WebSocket│ websocket │ REST │ (管理后台) │
└───────────────┘ │ admin │ └──────────────┘
└────────┬────────┘
│
┌────────┴────────┐
│ MySQL / Redis │
│ (及现有中间件) │
└─────────────────┘七、附录:仓库与目录对应
| 项目 | 仓库/路径 | 备注 |
|---|---|---|
| 后端 API | miaoliao-api(admin、client、websocket、framework、system、common、quartz、generator) | Maven 多模块 |
| 管理后台 | miaoliao-web/miaoliao-web-admin | Vue 2 + Element UI |
| H5 | miaoliao-web/miaoliao-web-h5 | uni-app |
| 客服前端 | miaoliao-web/miaoliao-web-kefu | — |
| Android | miaoliao-android(app + 各 library) | — |
| iOS | miaoliao-ios(NightChat) | — |
说明:密钥、AppKey、商户号等均需在各自环境(如 application.yml、manifest、xcconfig 等)中配置,本文档不列具体取值。新增或下线第三方服务时,建议同步更新本文档及配置说明。