乐于分享
好东西不私藏

一个人用uniapp做了个聊天App,代码全开源

一个人用uniapp做了个聊天App,代码全开源

想做一个自己的聊天软件,用什么方案?
如果你是开发者,大概率会想到几个选择:自己写Socket通信、用第三方IM SDK、或者干脆基于现有的开源项目改。
今天介绍的这个项目,思路挺实在的:一个人利用休息时间,花两个月写了一套完整的即时通讯应用,前端用uniapp,后端用SpringBoot,代码全开源。
做了什么
这是一个即时通讯客户端,支持:
  • iOS 端
  • Android 端
  • H5 端
底层基于 uniapp,一套代码三个平台跑。
具体功能包括:文字消息、图片、语音、视频、文件发送,以及地图定位分享。这些IM应用的基础功能都覆盖了。
技术栈
前端
  • uniapp(Vue3)
  • uniPush + WebSocket 做消息推送
  • 阿里OSS 存图片、语音、视频、文件
音视频
  • 腾讯TRTC,支持实时音视频通话
地图
  • 高德地图,发送位置信息
后端
  • SpringBoot
  • Shiro 做权限控制
  • MyBatis-Plus
  • Sharding-JDBC 分库分表
这套后端架构偏企业级,对高并发和数据库扩展有一定考虑。
一个人能做成这样吗
项目作者在说明里写得很坦诚:
“一直以来都有一个社交梦,想做一款IM应用,看了很多优秀的开源项目,但是没有合适自己的。于是利用休息时间自己写了这么一套系统。第一个版本历时2个月。”
2个月,休息时间,一个人把前端到后端都写了。
IM应用听起来复杂,但拆开来看就是:消息发送、接收、存储、推送,再加上音视频和文件处理。每一块都有成熟的第三方服务可以用,自己主要做的是整合和业务逻辑。
适合谁看
  • 想了解IM应用怎么从零搭的人
  • 需要一个现成的聊天模块集成到自己项目里的人
  • 用uniapp开发、想参考完整项目结构的人
作者还配套出了 Flutter 版本(chat-flutter),以及完整的后端接口(chat-api),形成了移动端 + 后端的完整闭环。
Gitee:https://gitee.com/lakaola/chat-uniapp
GitHub:https://github.com/lakaola/chat-uniapp