一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力,后端采用springboot+netty实现,web端使用vue,移动端使用uniapp,支持私聊、群聊、离线消息、发送图片、文件、语音、emoji表情、视频聊天等功能。
PS:附件内含一套商业版本的源码
- 一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件。
- 支持私聊、群聊、离线消息、发送语音、图片、文件、已读未读、群@等功能
- 支持单人、多人音视频通话(基于原生webrtc实现,需要ssl证书)
- uniapp端兼容app、h5、微信小程序,可与web端同时在线,并保持消息同步
- 后端采用springboot+netty实现,网页端使用vue,移动端使用uniapp
- 服务器支持集群化部署,具有良好的横向扩展能力
- 框架和组件版本全面升级: jdk17、springboot3.3、node18等
项目结构[td]模块 | 功能 | platform | 业务平台服务,负责处理来自用户的业务请求(http) | server | 消息推送服务,不依赖业务,负责将消息推送给用户(ws) | client | 消息推送sdk, 其他服务可集成此sdk与im-server通信 | common | 公共包,后端服务均依赖此包 | web | web页面 | uniapp | uniapp页面,可打包成app、h5、微信小程序 | 消息推送方案当消息的发送者和接收者连的不是同一个server时,消息是无法直接推送的,所以我们设计出了能够支持跨节点推送的方案:
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
- 利用了redis的list数据实现消息推送,其中key为im:unread
{serverid},每个key的数据可以看做一个queue,每个im-server根据自身的id只消费属于自己的queue - redis记录了每个用户的websocket连接的是哪个im-server,当用户发送消息时,im-platform将根据所连接的im-server的id,决定将消息推向哪个queue
本地启动1.安装运行环境 - 安装node:v18.19.0
- 安装jdk:17
- 安装maven:3.9.6
- 安装mysql:8.0,账号密码分别为root/root,创建名为im_platform的数据库,运行db/im_platfrom.sql脚本
- 安装redis:6.2
- 安装minio:RELEASE.2024-xx,使用默认账号、密码、端口
2.启动后端服务 - mvn clean package
- java -jar ./platform/target/platform.jar
- java -jar ./server/target/server.jar
复制代码3.启动前端web - cd im-web
- npm install
- npm run serve
复制代码访问 http://localhost:8080 4.启动uniapp-h5 将im-uniapp目录导入HBuilderX,点击菜单"运行"->"开发环境-h5" 访问 http://localhost:5173 接入消息推送盒子IM对消息推送模块进行了剥离和封装, 如果您不关心盒子IM的业务功能,只需要一个可以将消息推送至前端的服务,则只需要启动im-server即可 界面截图
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...
一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件 支持集群化部署,具有良好的横向扩展能力 ... ...

链接:https://pan.quark.cn/s/3bb287b6a497
提取码下载:
|