news 2026/4/16 11:06:28

介绍一款即时通讯系统——盒子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/4/16 9:08:30

Windows系统文件compobj.dll丢失损坏 下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/16 9:21:59

PaddlePaddle超分辨率重建:ESRGAN模型GPU训练指南

PaddlePaddle超分辨率重建:ESRGAN模型GPU训练实战解析 在数字图像日益渗透到安防、医疗、流媒体等关键领域的今天,一个共同的挑战浮出水面——如何让模糊、低清的画面“重获新生”?无论是监控视频中难以辨认的人脸轮廓,还是老照片…

作者头像 李华
网站建设 2026/4/16 10:58:54

Arduino Uno入门指南:从零实现串口通信操作

从点亮“Hello, World!”开始:手把手教你玩转 Arduino Uno 串口通信 你有没有试过让一块小板子对你“说话”? 不是科幻电影里的AI对话,而是一行简单的 Hello, World! 在电脑屏幕上跳出来——来自你亲手编程的 Arduino Uno 。这不仅是嵌…

作者头像 李华
网站建设 2026/4/16 11:05:12

CANoe上云方案:打造企业级ECU云端流水线,效率、质量、成本三重提升!

在越来越多的汽车企业里,“软件工程效率”已经成为左右竞争力的核心变量。ECU越来越复杂,功能迭代越来越快。这些变化让传统的基于电脑的本地工具模式逐渐捉襟见肘:构建慢、环境不一致、测试分散、资源浪费、跨团队协作困难。于是&#xff0c…

作者头像 李华
网站建设 2026/4/16 10:43:47

PaddlePaddle DIN模型应用:用户行为序列建模

PaddlePaddle DIN模型应用:用户行为序列建模 在电商、内容平台日益激烈的竞争中,推荐系统早已从“锦上添花”变成了决定用户体验与商业转化的命脉。一个精准的点击率(CTR)预估模型,不仅能提升用户满意度,还…

作者头像 李华