IM客户端架构设计

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 一些关于IM客户端架构的总结

前言

我目前负责一个办公类App开发,为用户提供在线聊天,音视频通话,文件传输,以及办公小程序容器等功能,同时还提供PC、Pad、Phone三个平台设备客户端。RD们需要提供的能力有:IM基础通讯,IM消息端对端加密,OSS文件存储与上传下载管理,用户权限控制等等功能。

从功能复杂度上看,这将是一个大型的开发项目,所以架构设计将对项目的迭代非常重要,不论是业务功能的可维护性还是在模块的低耦合都是架构设计需要考虑的。

架构大纲

kCO5Dk-202102071042211612665741

主业务模块

主业务模块,从名字上可以看出是一个偏向业务定制的模块。

这个模块中页面或者功能在设计时更多考虑的是业务快速实现。例如:注册登录界面,用户详情展示页,第三方库的封装配置,通用模块的注册与配置。

当某个功能经过迭代成长,具有一定的通用业务能力时,会从主业务模块中拆分出来,封装成单独模块供其他业务使用。例如:用户的权限管理,网络时钟工具,HTTP连接管理模块。

IM模块

作为一个办公类IM App,IM模块是最重要的一个模块。这个模块从功能上,分为通讯数据管理与UI展示两个部分。

UI展示的功能有:聊天会话列表,聊天会话的定制化(输入控制面板,气泡样式定制等),音视频通话界面等。

通讯数据管理的功能有:IM的连接状态管理,IM的消息收发管理,信令管理,数据库管理等。

OSS与文件管理模块

源于IM模块,为IM提供文件传输的功能。由于OSS上传下载以及本地文件管理有着很强的通用性,于是对这个模块进行了单独分装。

这个模块提供本地文件存储,下载进度管理,断点续传,分片上传等OSS功能。

端对端加密能力模块

通过DH、AES、RSA等加密算法,提供两个设备端之间可以通过公私钥交换搭建安全信道的协议。同时需要实现证书结构,与后台CA共同维护设备证书。

这模块属于专业功能,封装了整套端对端加密的算法实现。

身份与权限模块

源于主业务模块,维护用户的鉴权信息,如token有效性,用户的基础信息等。同时也维护服务端下发的用户权限配置,实现客户端用户权限管理。

App业务配置模块

管理通用模块的注册逻辑,提供优先级管理,自动注册等功能。

搜索模块

负责如首页搜索,全局或局部的数据搜索业务。

注册和管理不同模块的搜索能力,方便在不同的模块中使用搜索功能。

需要注意的是搜索API需要异步实现,并且当出现高并发时需要取消失效的搜索任务,只匹配最新的搜索条件。比如用户开始搜索,在第一次搜索结果未返回时,用户又连续搜索了4次,如果不做处理,则会生成5个搜索结果,而其中的2,3,4其实是无效的搜索条件,当第1次搜索结束后,可以直接进行第5次搜索的匹配。

Hybrid容器模块

为H5提供Native的能力支持,发展小程序业务,利用H5迭代更快,实时接入的优点来为App赋能。

提供Native与JS的通信能力,提供与JS异步/同步通信的API,对Native函数与JS函数实现注册管理。

基础能力模块

日志管理模块

​ 提供日志文件管理、上传管理、日志等级管理等功能。

基础功能模块

​ 提供工具类,系统类方法扩展等。

网络模块

​ HTTP网络管理,请求/响应插件管理。

​ TCP网络管理,粘包/解包处理。

埋点模块

​ 根据业务配置表来管理客户端的埋点,管理数据上报逻辑,也负责预处理上报数据。

路由模块

​ 提供配置注册功能,可由服务端下发路由配置。

​ 提供App外部(如通知、网页)通过URL跳转App页面能力。

​ 提供App内部通过URL跳转页面,或者执行预设函数的能力,解耦模块。

目录
相关文章
|
9月前
|
前端开发 JavaScript Java
智能客服系统的技术栈解析-唯一客服系统技术架构优势
“唯一客服系统”采用 Vue.js 2.x + ElementUI 构建前端,实现响应式界面,支持多端适配;后端基于 Golang + Gin + GORM,具备高性能与高并发处理能力。系统支持私有化部署,提供灵活定制、AI 扩展能力,技术栈简洁易维护,兼顾开发者友好与企业级应用需求。
377 1
|
10月前
|
人工智能 自然语言处理 语音技术
2025年国内主流智能客服系统:技术架构与能力深度解析
本文分析了2025年国内智能客服市场的技术格局与系统能力,从核心技术栈(NLP、知识图谱、语音技术等)到市场梯队划分,深入探讨了第一梯队的综合型平台和第二梯队的场景化服务。以合力亿捷为例,剖析其端到端AI技术栈、大模型融合、全渠道融合及运营优化能力,并对比国际顶尖通用AI在语义理解、多模态交互和自主学习方面的启示。最后为企业提供选择智能客服系统的五大考量因素,强调技术与业务场景的深度融合,助力企业实现更高效、智能的客户服务体验。
1859 2
|
12月前
|
前端开发 API 开发工具
一年撸完百万行代码,企业微信的全新鸿蒙NEXT客户端架构演进之路
本文将要分享的是企业微信的鸿蒙Next客户端架构的演进过程,面对代码移植和API不稳定的挑战,提出了DataList框架解决方案。通过结构化、动态和认知三重熵减机制,将业务逻辑与UI解耦,实现数据驱动开发。采用MVDM分层架构(业务实体层、逻辑层、UI数据层、表示层),屏蔽系统差异,确保业务代码稳定。
553 0
|
存储 消息中间件 缓存
支持百万人超大群聊的Web端IM架构设计与实践
本文将回顾实现一个支持百万人超大群聊的Web端IM架构时遇到的技术挑战和解决思路,内容包括:通信方案选型、消息存储、消息有序性、消息可靠性、未读数统计。希望能带给你启发。
571 0
支持百万人超大群聊的Web端IM架构设计与实践
|
人工智能 运维 Cloud Native
2025年国内工单系统推荐:技术架构、场景适配与行业实践
分析了智能化升级、大数据驱动、云原生架构及全渠道融合四大技术趋势,从功能适配性、易用性、集成能力、安全性和性价比五个维度指导企业选型,并推荐合力亿捷等三家系统的优劣对比,结合电商和制造行业的实际案例,帮助企业提升客户服务水平与竞争力。
827 11
2025年国内工单系统推荐:技术架构、场景适配与行业实践
|
存储 SQL 监控
转转平台IM系统架构设计与实践(二):详细设计与实现
以转转IM架构为起点,介绍IM相关组件以及组件间的关系;以IM登陆和发消息的数据流转为跑道,介绍IM静态数据结构、登陆和发消息时的动态数据变化;以IM常见问题为风景,介绍保证IM实时性、可靠性、一致性的一般方案;以高可用、高并发为终点,介绍保证IM系统稳定及性能的小技巧。
304 6
|
存储 消息中间件 小程序
转转平台IM系统架构设计与实践(一):整体架构设计
本文描述了转转IM为整个平台提供的支撑能力,给出了系统的整体架构设计,分析了系统架构的特性。
489 10
|
算法 前端开发 API
开源轻量级IM框架MobileIMSDK的鸿蒙NEXT客户端库已发布
MobileIMSDK-鸿蒙端是一套基于鸿蒙Next(纯血鸿蒙)系统的IM即时通讯客户端库: 1)超轻量级(编译后库文件仅50KB)、无任何第3方库依赖(开箱即用); 2)纯ArkTS编写、无Native代码、高度提炼、简单易用; 3)基于鸿蒙Next标准WebSocket API,简洁优雅; 4)可运行于任何支持鸿蒙Next的平台; 5)能与 MobileIMSDK的各种客户端完美互通; 6)可应用于鸿蒙Next中的消息推送、客服聊天、企业OA、IM等场景。
451 45
|
消息中间件 网络协议 NoSQL
1000W长连接,如何建立和维护?千万用户IM 架构设计
最近有小伙伴在面试 美团,又遇到了 IM 架构问题。小伙伴支支吾吾的说了几句,面试挂了。 所以,尼恩给大家做一下系统化、体系化的梳理,使得大家内力猛增,可以充分展示一下大家雄厚的 “技术肌肉”,**让面试官爱到 “不能自已、口水直流”**,然后实现”offer直提”
|
机器学习/深度学习 自然语言处理 搜索推荐
大厂 10Wqps智能客服平台,如何实现架构演进?
40岁老架构师尼恩,凭借深厚的架构功力,指导众多小伙伴成功转型大模型架构师,实现职业逆袭。尼恩的《LLM大模型学习圣经》系列PDF,从基础理论到实战应用,全面覆盖大模型技术,助力读者成为大模型领域的专家。该系列包括《从0到1吃透Transformer技术底座》《从0到1吃透大模型的基础实操》《从0到1吃透大模型的顶级架构》等,内容详实,适合不同水平的读者学习。此外,尼恩还分享了多个智能客服平台的实际案例,展示了大模型在不同场景中的应用,为读者提供了宝贵的实践经验。更多技术资料和指导,请关注尼恩的《技术自由圈》公众号。
大厂 10Wqps智能客服平台,如何实现架构演进?
下一篇
开通oss服务