# V-IM_1 **Repository Path**: bigcat9527/V-IM_1 ## Basic Information - **Project Name**: V-IM_1 - **Description**: V-IM(中文名:乐聊)基于JS的超轻量级聊天软件。前端:vue3.0、element plus、electron、TypeScript 实现的 PC&Web版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持web网页聊天实现。 服务端: springboot、tio、oauth2.0等技术。界面:高仿微信。 - **Primary Language**: JavaScript - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: https://gitee.com/lele-666/V-IM - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1494 - **Created**: 2023-03-14 - **Last Updated**: 2023-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 需要购买的阿里云的同学 请点击支持 [阿里云优惠券2000元](https://chuangke.aliyun.com/invite?userCode=d4l0ykh3) ### 请勿加作者微信为了问问题,我很忙,我把你拉群里,看看大家能不能解答,谢谢理解。 ### 加微:zkp_java 务必备注:v-im 并且附上点赞的 gitee 用户名,不点赞不让加哦 ### doc 文件夹里面有uni-app手机版的apk,手机版源码微信联系。 ### 测试地址:http://101.200.151.183/ PC端网页版,app也能连这个地址,需要在网页版上面注册用户。 ### Create by [webstorm and intellij IDEA] ### 说明 > 1、此版本是个全新开发的版本,和之前的老版本除了界面相似,别的都不一样,完全不一样。主要用vue3.0 + ts开发。消息可靠性更高,如果发送人能够看到自己发送的消息,那么对方100%可达。 > 2、系统是在RuoYi-vue(https://gitee.com/y_project/RuoYi-Vue) 的基础上开发的,但是把数据库操作改成mybatis-plus,原先的是mybatis(如果你想完全迁移到RuoYi系统里面,可能还需要一定的工作量)。 ### 结构 > 1. v-im-pc 是聊天客户端,支持打包成exe 和 h5网页。 > 2. v-im-server 是服务端代码,集成了ruoyi的模块。 > 3. RuoYi-ui-vue3 是ruoyi管理系统的前端代码。 > 4. doc 下面有数据库等。 > 5. 1、2、3都是要启动的,务必先启动2 #### v-im-pc文档 > 1. 安装依赖命令:yarn 。 > 2. 开发环境命令:npm run serve 和 npm run electron:serve。 > 3. 打包exe安装文件:npm run electron:build,打包完成的文件在/dist_electron 下。 > 4. 打包web文件:npm run build,打包完成的文件在/dist 下。 > 5. 启动:num run serve。 #### v-im-server文档 > 1. 启动:直接run v-im-server 下的 VimApplication,不是ruoyi-admin下的 RuoYiApplication。 > 2. 数据库配置在ruoyi-admin resources下的application-druid.yml。 #### RuoYi-ui-vue3文档 > 1. 这里是管理后台,是若依默认的UI。 > 2. 启动:num run dev。 > 3. 具体功能参考ruoyi ### 注意事项 > 1. 打包时候项目路径不能有中文,包括你 windows 用户都不能有中文字符,因为npm 缓存都是在用户目录下(如果原先的用户名是中文,再修改成英文也不好用,因为原先的npm包都还在中文目录下,可以新建个window 英文账号,登录新账号打包)。 > 2. 使用yarn 安装依赖,npm 不是很好用,尝试过,都不能打包成功。如果yarn 不能安装依赖成功,可以多试几次! > 3. 基于 t-io websocket 协议, 据说能支持百万级并发,但是此项目并没有进行此方面的测试,还请知晓 ! > 4. 数据库mysql,缓存redis,消息聊天记录在redis里面存着,私聊key:message-{minUserID}-{maxUserId}(两个人的id肯定是大小值不一样),群聊key:message-{groupId},表im-message暂时没有用。 ### 常见问题 1. 如果出现 Parsing error: x-invalid-end-tag vue/no-parsing-error 类似的错误,可用用 webstorm 右键src 目录 Fix eslint problems, 2. 安装不成功,请先执行 npm install node-sass。如果还是错误请多重试下! 3. 很多同学安装electron失败,导致不能打包,可以尝试用cnpm或者yarn安装,或者多重试几次。 4. 历史记录分页第一页数据不对问题:第一页是带发送给对方的未读消息,所以第一页可能是超过每页的分页记录。 ### 截图 ![消息列表/聊天](https://gitee.com/lele-666/V-IM/raw/master/doc/img/1.png) ![好友](https://gitee.com/lele-666/V-IM/raw/master/doc/img/2.png) ![组织](https://gitee.com/lele-666/V-IM/raw/master/doc/img/3.png) ![群组](https://gitee.com/lele-666/V-IM/raw/master/doc/img/4.png) ![添加好友](https://gitee.com/lele-666/V-IM/raw/master/doc/img/5.png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(1).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(2).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(3).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(4).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(5).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(6).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(7).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(8).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(9).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(10).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(11).png) ![手机](https://gitee.com/alyouge/V-IM/raw/master/doc/uniapp/%20(12).png) ### 功能点 1. 文本聊天 2. 聊天表情 3. 发送图片(http) 4. 发送文件(http) 5. 单聊 6. 群聊 7. 用户分组(后端支持) 8. 离线消息(单聊+群聊,支持消息提醒) 9. 聊天记录(单聊、群聊) 10. 支持心跳检测,断线重连 11. 使用SpringBoot security oauth2.0 支持单点登录。 12. 好友添加。(新增) 13. 群管理(新增) 14. 带有管理后台(原ruoyi-vue) 15. 树状组织机构 16. 消息转发 ### 参考项目及技术 > 1. RuoYi-vue(https://gitee.com/y_project/RuoYi-Vue) > 2. layIM(主要是聊天表情,文件处理方面)。 > 3. 使用SpringBoot、oauth2.0、t-io 开发后端服务。 > 4. vue3.0、element-plus、typescript开发前端。 > 5. 界面高仿微信,如有侵权请告知。 > 6. 其他:使用 fetch 发送ajax 请求,支持跨域,electron 支持打包成为exe,也支持linux 和 mac 目前还没测试,有条件的同学可以测试。 ### 交流授权 > 1. 如果您觉得好用,可以给点个star,或者给个捐赠。 > 2. 如需定制或者私有化部署,请加微:zkp_java。 > 3. ![群](https://gitee.com/alyouge/V-IM/raw/master/doc/qun.png)