# intrachat **Repository Path**: linshidream/intrachat ## Basic Information - **Project Name**: intrachat - **Description**: IntraChat(引洽)是一款开源、可私有化部署的企业级 IM 即时通信系统,对标微信/钉钉的内部通信架构,主体代码还在不断更新中... - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 3 - **Created**: 2025-08-09 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: IM, TCP, Netty ## README

### 📦 项目介绍 IntraChat(引洽)是一款开源、可私有化部署的企业级 IM 即时通信系统,对标微信/钉钉的内部通信架构,IM 服务端基于 **Spring WebFlux + Netty** 构建,具备以下特性: - 支持 **WebSocket / TCP** 双通道通信 - 自定义 **TLV 协议**,支持长度帧解码(粘包半包处理) - 支持 **单聊 / 群聊**,支持在线转发 + 离线消息机制 - 支持 **HTTP 发送消息、WS 在线推送隔离架构** - 内置 **用户多端支持**(一个用户可绑定多个终端) - 支持 **分布式集群路由与节点转发(协议层可扩展 HTTP + MQ 双协议)** - 内置路由管理、用户状态注册、节点注册与转发机制 ### 🧠 技术选型 **语言与框架**:Java 8、Spring WebFlux、Netty **协议支持**:HTTP、WebSocket、自定义 TCP(TLV 协议) **数据库**:MySQL、MongoDB、Elasticsearch **缓存与注册中心**:Redis **消息中间件**:RocketMQ **对象存储**:MinIO ### 🏗️ 通信协议(TLV结构) ```text | Magic Code | MsgType | BodyLength | MessageBody | | 2 bytes | 1 byte | 4 bytes | variable length | ``` ### 🚀 启动方式 ```bash # 启动 SpringBoot 项目(包含内嵌 Netty Server) ./mvn clean package java -jar target/intrachat-0.0.1-SNAPSHOT.jar ``` ### ✅ 后续规划 - 消息离线存储 / 阅后即焚 - 文件消息(图片/视频) - 加入 MQ 模式消息分发(Kafka / RocketMQ) - 分布式负载均衡与容灾机制 - Web前端聊天面板(React / Vue) ### 💬 社区支持与贡献 欢迎使用、Star、Issue 提问、提交 PR! 未来计划提供: - 支持 **云端历史聊天记录同步**(跨设备无缝同步消息记录,支持时间轴检索与分页加载) - 内置 **端到端加密的私密聊天模式**(参考 Telegram Secret Chat,消息仅在聊天双方设备解密,不经服务器存储) ### 📄 License 本项目遵循 **Apache License 2.0** 开源协议 [LICENSE](./LICENSE) 发布 ### 🧙‍♂️ 开发者 > 林是梦 👨‍💻 GitHub / 小红书 / 微信公众号:**@林是梦** **未来开放技术交流群...** ### 📜 免责声明 - 使用本项目产生的任何直接或间接后果,均由使用者自行承担,与本项目作者及贡献者无关。 - 在部署、使用本项目之前,请确保您所在地区允许此类软件的运行和使用,并已完成相应的备案与合规要求。 - 若您不同意上述任何条款,请立即停止使用并删除本项目的全部代码与数据。