这款 8W Fork 的即时通讯(IM)项目,让你轻松打造自己的聊天App!
大家好呀,我是的开源小妹。
最近小妹新做了一款 APP,其中需要使用上高性能、高安全的即时通讯功能。我进行了一轮技术选型,其中包括腾讯 IM 等云服务商提供的 IM 产品。
最终因为 IM 云服务收费的高企,囊中羞涩的小妹最终决定使用一款由前微信技术专家打造的免费开源的即时通讯组件:Open-IM。
介绍
Open-IM 的创始团队来自前微信高级架构师、IM / WebRTC 专家团队,打造轻量级、高可用的 IM 架构,开发者只需简单调用 SDK,即可在应用内构建多种即时通讯及实时音视频互动场景。
Open-IM 拥有以下几点特色:
(1)开源永久免费
代码全部开源,永久免费,包括客户端和服务端,由前微信技术专家打造,并邀请全球技术极客参与建设。
(2)易扩展
服务端采用 golang 实现,首创“一切皆消息”的通讯模型,轻松实现自定义消息和扩展功能。
(3)技术服务
每个技术人员都承担技术客服的角色,强化社区,不提工单,及时解答。
(4)高性能
借鉴并优化通讯架构,抽象在线消息、离线消息、历史消息存储模型,分层治理架构,支持集群部署。
(5)安全
代码全部开源,服务端私有化部署,数据自我掌控。未来加入全球最安全的 signal 端到端加密协议。
(6)全平台支持
支持 Andorid、iOS 原生开发,支持 Flutter、uni-app 跨端开发,支持小程序、React 等所有主流 web 前端技术框架, PC 支持 Electron。
架构
即时通讯是一项需要高性能和高可靠的架构支撑的业务,所以一个能够很好解决业务解耦和组件解耦的架构尤其重要!
Open-IM 的服务端由接入层、逻辑层和存储层组成,好处在于各个层次能够依据业务特点专注于自己的事情,提高系统复用性,降低业务间的耦合。
(1)接入层:消息通过 Websocket 协议接入,其他通过 http/https 协议接入,消息是高频及核心功能,通过双协议路由,体现了轻重分离的设计思想。
(2)逻辑层:通过 RPC 实现无状态逻辑服务,易于平行扩展,消息通过 MQ 解耦。
(3)存储层:Redis 存储 token 和 seq;MongoDB 存储离线消息,并定时删除 14 天(可自行配置)前数据;mysql 存储全量历史消息以及用户相关资料。数据分层存储,充分利用不同存储组件的特性。
(4)Etcd:服务注册和发现、以及分布式配置中心。
快速使用
准备 Linux 系统,保证可用内存 2G 以上。
安装 Docker 版本 1.13 以上,Docker-Compose 版本 1.22 以上。
一键部署:
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive;
cd Open-IM-Server/script;
chmod +x *.sh;
./env_check.sh;
cd ..;
docker-compose up -d;
cd script;
./docker_check_service.sh;
可下载官方自带的 Demo 客户端使用。
小结
现在越来越讲究「互联」和「社交」,所以即时通讯的功能必定有更多的使用场景和需求。既然云服务商的 IM 服务费用如此高企,为何不来试试这一款免费开源的高性能 IM 组件呢?
相关文章
- Appnium--APP自动化测试工具
- 跨平台移动APP开发进阶(三):hbuilder+mui mobile app 开发心酸路
- uni-app实战---社区交友APP(环境搭建)
- Android下基于Iptables的一种app网络访问控制方案(一)[通俗易懂]
- 共享格子售货机方案/案列/APP/小程序/项目
- 宝塔反代面板端口+开启HTTPS后无法绑定堡塔APP
- 一言 APP 添加 “今日诗词” 官方源 api
- 【Google Play】App Bundle 使用详解 ( 应用模块化 )
- 如何在自己APP中接入在线客服系统,App接入第三方在线客服系统方法
- 用HBuilder打包简单项目(vue项目)APP的步骤
- 每一个人的大模型:开源BELLE项目集训练、数据、模型、评估、APP一体
- 免刷机MIUI 小米系统app 小米系统下载 小米系统2.7下载
- 央视频APP推出VIP服务:年费178元 会员无广告
- B站建开源工作组 多APP使用其开源项目
- 你的应用是如何被替换的,App劫持病毒剖析
- 手机App连接网站MySQL数据库实现跨平台通讯(app连接网站mysql)
- APP访问MySQL从零开始(app 访问mysql)
- App 搭配 MySQL一场创新型移动数据处理之旅(app能不能用MySQL)
- 拓展业务用App组合MySQL实现跨平台数据共享(app组合mysql)
- App无缝连接MySQL一种全新的解放方式(app直连mysql)
- APP快速连接MySQL数据库的指南(app怎么连接mysql)
- APP互联网化MySQL驱动开拓前沿(app和mysql的关系)
- MYSQL数据库下载指南,轻松安装游戏APP(MYSQL下载游戏app)
- 轻松学习MYSQL下载文档App分享(MYSQL下载文档app)
- 国家互金专委会上线网贷查询APP,提供出借端查验服务