# IM **Repository Path**: zhangkede/instant-messenger ## Basic Information - **Project Name**: IM - **Description**: IM:一个专注于即时通讯技术的开源项目,提供高效、稳定的消息传递解决方案,支持多种平台和应用场景,旨在为开发者打造便捷的通讯工具。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Instant Messenger - 多端即时通讯系统 基于 Kotlin Multiplatform 构建的商用级即时通讯系统,支持 Android、iOS、Web、Desktop (JVM) 和服务端。 ## 🏗️ 项目结构 ``` . ├── app/ │ ├── androidApp/ # Android 应用入口 │ ├── iosApp/ # iOS 应用入口 │ ├── desktopApp/ # Desktop (JVM) 应用入口 │ ├── webApp/ # Web 应用入口 │ └── shared/ # 跨平台共享代码 │ └── src/commonMain/ # 所有平台通用代码 ├── core/ # 核心业务逻辑层 └── server/ # Ktor 服务端应用 ``` ## ✨ 核心功能 ### 🔐 用户认证 - [x] 用户注册(支持手机号/邮箱) - [x] 用户登录 - [x] JWT 令牌签发与刷新 - [x] 密码加密存储(BCrypt) - [x] WebSocket 连接认证 ### 💬 消息系统 - [x] 实时消息收发(WebSocket) - [x] 消息状态管理(发送中/已发送/已送达/已读) - [x] 离线消息存储与同步 - [x] 单聊消息 - [x] 群聊消息广播 - [x] 消息撤回(2分钟内) - [x] 消息转发 - [x] 消息删除(本地/双向) - [x] 消息搜索 ### 👥 群组功能 - [x] 创建/解散群组 - [x] 邀请/移除成员 - [x] 群管理员权限管理 - [x] 群公告 - [x] 群成员角色(群主/管理员/成员) - [x] 群系统通知 ### 📇 联系人系统 - [x] 好友请求(发送/接受/拒绝) - [x] 好友列表管理 - [x] 好友备注设置 - [x] 黑名单功能 - [x] 用户搜索(用户名/手机号/邮箱) ### 📞 音视频通话 - [x] WebRTC 信令服务器 - [x] 通话邀请/应答/拒绝 - [x] 通话状态管理 - [x] STUN/TURN 服务器支持 ### 🎨 用户界面 - [x] Compose Multiplatform UI - [x] Material 3 主题系统(亮色/暗色模式) - [x] 响应式布局适配 - [x] 流畅的页面导航 - [x] 消息气泡组件 - [x] 用户头像组件 ### 🔔 推送通知 - [x] 多平台推送支持(APNs / FCM / Web Push) - [x] 设备令牌注册与管理 - [x] 多设备推送支持 - [x] 消息通知(新消息/撤回/编辑) - [x] @我 通知提醒 - [x] 好友请求通知 - [x] 群组事件通知(邀请/加入/离开) - [x] 通话邀请推送 - [x] 系统公告推送 - [x] 通知设置(声音/震动/预览/角标) - [x] 全局勿扰模式(定时/手动) - [x] 单会话免打扰设置 - [x] 通知历史记录管理 - [x] 通知已读/未读状态同步 - [x] 通知订阅/取消订阅 - [x] 应用图标角标数字管理 - [x] Android 通知渠道支持 - [x] 推送优先级配置 - [x] 离线消息推送 - [x] 推送权限请求与检查 ### 🔄 状态同步 - [x] 在线状态同步 - [x] 正在输入状态 - [x] 最后上线时间 - [x] 心跳机制 ### 📱 多端支持 - [x] Android - [x] iOS - [x] Web (Wasm/JS) - [x] Desktop (JVM) - [x] Server (Ktor) ## 🚀 运行项目 ### 使用命令行 ```bash # Android 应用 ./gradlew :app:androidApp:assembleDebug # Desktop 应用 ./gradlew :app:desktopApp:run # 标准运行 ./gradlew :app:desktopApp:hotRun --auto # 热重载 # 服务端 ./gradlew :server:run # Web 应用 ./gradlew :app:webApp:wasmJsBrowserDevelopmentRun # Wasm 目标 ./gradlew :app:webApp:jsBrowserDevelopmentRun # JS 目标 # iOS 应用 # 打开 app/iosApp 目录在 Xcode 中运行 ``` ### 使用 IDE - 直接使用工具栏的运行配置 - 选择对应的平台配置运行 ## 🧪 运行测试 ```bash # Android 测试 ./gradlew :app:shared:testAndroidHostTest # Desktop 测试 ./gradlew :app:shared:jvmTest # 服务端测试 ./gradlew :server:test # Web 测试 ./gradlew :app:shared:wasmJsTest # Wasm ./gradlew :app:shared:jsTest # JS # iOS 测试 ./gradlew :app:shared:iosSimulatorArm64Test ``` ## 🛠️ 技术栈 | 分类 | 技术 | 版本 | |------|------|------| | 语言 | Kotlin | 2.0.0 | | 跨平台 | Kotlin Multiplatform | 2.0.0 | | UI | Compose Multiplatform | 1.11.0 | | 服务端 | Ktor Server | 3.4.3 | | 网络 | Ktor Client | 3.4.3 | | 数据库 | Exposed (服务端) | 0.52.0 | | 数据库 | SQLDelight (客户端) | 2.1.1 | | 依赖注入 | Koin | 4.1.0 | | 导航 | Voyager | 1.1.0 | | 序列化 | kotlinx-serialization | 1.6.3 | ## 📡 架构设计 - **分层架构**: UI层 → ViewModel → Repository → Data Source - **状态管理**: Flow + MutableStateFlow - **异步处理**: Kotlin Coroutines - **平台适配**: expect/actual 机制 ## 📞 联系方式 - **邮箱**: 834959743@qq.com - **手机**: 16657156689 ## 📄 许可证 MIT License --- 欢迎贡献代码和反馈!🎉 了解更多: - [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html) - [Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform) - [Ktor](https://ktor.io/)