天津即时通讯项目

xsx b242857798 wss使用443端口 il y a 1 an
db b242857798 wss使用443端口 il y a 1 an
im-client 7b5e07f5fd im-client自动装配适配springboot3.x版本 il y a 1 an
im-commom 985d4077c5 优化 il y a 1 an
im-platform b242857798 wss使用443端口 il y a 1 an
im-server 6581ce200a redis配置 il y a 1 an
im-uniapp b242857798 wss使用443端口 il y a 1 an
im-web b242857798 wss使用443端口 il y a 1 an
截图 3bb124310f update README.md. il y a 1 an
.gitignore cb8dbecb1a im-ui更名为im-web il y a 1 an
LICENSE a6df97fff9 add LICENSE. il y a 3 ans
README.md 3006a8fde5 更新文档 il y a 1 an
pom.xml 1c98ccf3f9 整理swagger配置 il y a 1 an

README.md

盒子IM

MIT协议 star star

  1. 盒子IM是一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件。
  2. 支持私聊、群聊、离线消息、发送语音、图片、文件、已读未读、群@等功能
  3. 支持单人、多人音视频通话(基于原生webrtc实现,需要ssl证书)
  4. uniapp端兼容app、h5、微信小程序,可与web端同时在线,并保持消息同步
  5. 后端采用springboot+netty实现,网页端使用vue,移动端使用uniapp
  6. 服务器支持集群化部署,每个im-server仅处理自身连接用户的消息

详细文档:https://www.yuque.com/u1475064/mufu2a

近期更新

发布3.0版本

在线体验

账号:张三/123456 李四/123456,也可以在网页端自行注册账号

网页端:https://www.boxim.online

移动安卓端:https://www.boxim.online/download/boxim.apk

移动H5端: https://www.boxim.online/h5/ ,或扫码:

输入图片说明

微信小程序:

输入图片说明

项目结构

模块 功能
im-platform 业务平台服务,负责处理来自用户的业务请求(http)
im-server 消息推送服务,不依赖业务,负责将消息推送给用户(ws)
im-client 消息推送sdk, 任何服务均可集成此sdk与im-server通信
im-common 公共包
im-ui web页面
im-uniapp uniapp页面

消息推送方案

输入图片说明

  • 当消息的发送者和接收者连的不是同一个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,运行sql脚本(脚本在im-platfrom的resources/db目录)
  • 安装redis:6.2
  • 安装minio:8.5.1,账号密码分别为admin/12345678,命令端口使用9001,并创建一个名为"box-im"的bucket,并设置访问权限为公开

2.启动后端服务

mvn clean package
java -jar ./im-platform/target/im-platform.jar
java -jar ./im-server/target/im-server.jar

3.启动前端web

cd im-ui
npm install
npm run serve

访问 http://localhost:8080

4.启动uniapp-h5 将im-uniapp目录导入HBuilderX,点击菜单"运行"->"开发环境-h5" 访问 http://localhost:5173

界面截图

私聊: 输入图片说明

群聊: 输入图片说明

输入图片说明

好友列表: 输入图片说明

群聊列表: 输入图片说明

微信小程序: 输入图片说明

输入图片说明

加入交流群

1群目前已满员,扫码进入2群:

输入图片说明

欢迎进群与小伙们一起交流, 申请加群前请务必先star哦

点下star吧

如果项目对您有帮助,请点亮右上方的star,支持一下作者吧!

说明几点

  1. 本系统允许用于商业用途,且不收费(自愿投币)。但切记不要用于任何非法用途 ,本软件作者不会为此承担任何责任
  2. 基于本系统二次开发后再次开源的项目,请注明引用出处,以避免引发不必要的误会
  3. 作者目前不打算接项目,如果能接受1k/天以上的报价,也可以聊聊