# leoIm **Repository Path**: liyao123456/leo-im ## Basic Information - **Project Name**: leoIm - **Description**: 一款网页即时通讯聊天软件,不依赖于第三方收费SDK,目前已经实现登录,单聊,群聊,点对点语音或视频聊天等 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2024-08-26 - **Last Updated**: 2025-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## LeoIM > LEOIM 目前是一款网页即时通讯聊天软件,不依赖于第三方收费SDK,目前已经实现登录,单聊,群聊,点对点语音或视频聊天等 1. 前端采用react + arco.design + axios + websocket 等实现 2. 后端采用Java + Netty 实现,采用 MobileIMSDK 封装的Netty 框架 + jpa 3. 文件存储使用 minio,当作存储服务器,快速启动使用docker,脚本文件在im-server/docker-compose.yml 4. 语音聊天,视频聊天,目前只支持单人的,采用原生webrtc,自己实现的信令机制,(群聊后续会扩展,目前打算使用jitsi 后续的扩展) ## 如何启动 ### 前端 ``` cd im-react-web npm install npm start ``` ### 后端 1. 启动本地minio服务器(如果不启动,图片,等文件资源 无法正常显示) ``` docker-compose -f docker-compose.yml up -d ``` 2. 打开im-server/im-web (springboot工程下面application.yml) ``` 1.修改成你的数据地址,项目采用jpa,无需导入sql,会根据实体类自动生成表接口 datasource: url: jdbc:mysql://localhost:3306/leoim?useSSL=false&serverTimezone=UTC username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver 2. 修改成你的本地minio服务信息,具体请参考上边docker 文件 minio: endpoint: http://192.168.0.195:9000 access-key: liyao123 secret-key: liyao123 ``` ## 项目截图 ##### 登录页面: ![登录页面](images/登录页面.png) ##### 主页面: ![登录页面](images/主页面.png) ##### 群资料页面: ![登录页面](images/群资料页面.png) ##### 个人资料页面: ![登录页面](images/聊天页面-个人资料.png) ##### 表情选择: ![表情选择](images/表情选择.png) ##### 视频聊天: ![视频聊天](images/视频聊天.jpg) ##### 语音聊天: ![语音聊天](images/语音聊天.png) ##### 通讯录页面: ![通讯录页面](images/通讯录页面.png) #### 持续迭代更新优化 ##### 迭代优化好目前web端,以最简单模式方式完善 ##### 以后 ##### 1: 使用flutter,支持移动端(android,ios)后端扩展多端登录模式 ##### 2: 后端升级集群模式,使用各种高性能中间件,支持无限扩展用户 ##### 3: 多人音视频模式,会议模式,采用 jitsi 开源 ## 随便说说 > 纯属是自己玩具项目,个人写项目的时候,UI比较追求细节,所以使用arco.design 工作以外时间有限,后续如果更新缓慢,请谅解 > 微信: d0_pub ,有问题可以交流