news 2026/3/14 18:20:11

介绍一款即时通讯系统——盒子IM

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
介绍一款即时通讯系统——盒子IM

文章目录

  • 一、盒子 IM 简介
  • 二、技术架构总览
  • 三、消息推送方案


详细文档: https://www.yuque.com/u1475064/mufu2a
官方论坛: https://bbs.boxim.online
gitee: https://gitee.com/bluexsx/box-im

一、盒子 IM 简介

盒子IM是一个类似微信的聊天工具。后端采用springboot+netty实现,web端使用vue,移动端使用uniapp,支持私聊、群聊、离线消息、发送图片、文件、语音、emoji表情、视频聊天等功能。

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

二、技术架构总览

模块功能
im-platform业务平台服务,负责处理来自用户的业务请求(http)
im-server消息推送服务,不依赖业务,负责将消息推送给用户(ws)
im-client消息推送sdk, 其他服务可集成此sdk与im-server通信
im-common公共包,后端服务均依赖此包
im-webweb页面
im-uniappuniapp页面,可打包成app、h5、微信小程序

架构亮点

  • 无状态设计:im-server不存储业务数据,仅负责消息流转,支持水平扩展。

  • 集群化部署:通过Redis实现节点间消息同步,支持万级并发。

三、消息推送方案

当消息的发送者和接收者连的不是同一个server时,消息是无法直接推送的,所以我们设计出了能够支持跨节点推送的方案:

  • 利用了redis的list数据实现消息推送,其中key为im:unread:${serverid},每个key的数据可以看做一个queue,每个im-server根据自身的id只消费属于自己的queue
  • redis记录了每个用户的websocket连接的是哪个im-server,当用户发送消息时,im-platform将根据所连接的im-server的id,决定将消息推向哪个queue
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/10 11:55:23

一文说清ESP32引脚图与外设对应关系

搞懂ESP32引脚分配,其实就这么简单你有没有在开发ESP32项目时,遇到过这样的尴尬?烧录程序失败,反复检查才发现不小心把GPIO1当普通IO用了;IC总线上挂了两个传感器,地址冲突不说,SDA线还时不时拉…

作者头像 李华
网站建设 2026/3/14 16:14:21

PaddlePaddle Match-Pyramid实战:文本匹配应用场景

PaddlePaddle Match-Pyramid实战:文本匹配应用场景 在智能客服、电商搜索和知识库问答日益普及的今天,如何让机器真正“理解”两段文字是否表达相同含义,成为提升系统智能化水平的关键挑战。用户一句“手机充不进电怎么办”,系统能…

作者头像 李华
网站建设 2026/3/14 1:48:42

富通科技冲刺港股:上半年营收2.4亿同比降4.8% 李勇控制28%股权

雷递网 雷建平 12月26日福信富通科技股份有限公司(简称:“富通科技”)日前递交招股书,准备在港交所上市。2022财年,富通科技派付截至2021年12月31日止年度的末期股息约人民币10.6百万元。2023财年,富通科技…

作者头像 李华
网站建设 2026/3/14 4:51:48

从零实现I2S协议多设备同步传输的操作指南

如何让多个音频设备“步调一致”?从零实现 I2S 多设备同步传输的实战指南你有没有遇到过这样的问题:系统里接了四个麦克风,明明用的是同样的采样率,录出来的声音却总有细微的时间差?波束成形算法一跑,方向感…

作者头像 李华
网站建设 2026/3/12 14:00:31

基于ESP32的智能灯光控制:实战案例详解

用ESP32打造真正的智能灯:从零开始的实战全记录你有没有过这样的体验?晚上躺在床上,突然想起客厅的灯没关。起身去关吧,太麻烦;忍着不管吧,又总觉得浪费电。这其实是传统照明系统最典型的痛点——控制滞后、…

作者头像 李华
网站建设 2026/3/10 21:27:28

PaddlePaddle关键词提取技术:从长文本中精准定位重点

PaddlePaddle关键词提取技术:从长文本中精准定位重点 在信息爆炸的时代,每天产生的中文文本数据以亿计——新闻资讯、社交媒体评论、企业工单、学术论文……如何快速从这些冗长内容中“捞出”真正有价值的信息,已经成为智能系统能否高效运转的…

作者头像 李华