写点什么

【IM 开源推荐】前微信技术专家打造的开源的即时通讯组件 OpenIM

用户头像
OpenIM
关注
发布于: 3 小时前


Open-IM 是由前微信技术专家打造的开源的即时通讯组件。Open-IM 包括 IM 服务端和客户端 SDK,实现了高性能、轻量级、易扩展等重要特性。开发者通过集成 Open-IM 组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。

Open-IM 包括哪些模块

(一)客户端

(1) golang 实现的跨平台的 SDK:Open-IM-SDK-Core ,开发者不需要关心

(2)在Open-IM-SDK-Core 基础上生成的 iOS 版本 SDK:Open-IM-SDK-iOS ,供开发者引用

(3)在Open-IM-SDK-Core 基础上生成的 Android 版本 SDK:Open-IM-SDK-Android,供开发者引用

(4)在Open-IM-SDK-iOSOpen-IM-SDK-Android生成的 Flutter 版本 SDK:Open-IM-SDK-Flutter ,供开发者引用

(5)在Open-IM-SDK-iOSOpen-IM-SDK-Android生成的 uni-app 版本 SDK:Open-IM-SDK-Uniapp,供开发者引用

(6)基于Open-IM-SDK-iOS开发的、供开发者参考的 iOS Demo:Open-IM-iOS-Demo ,供开发者参考

(7)基于Open-IM-SDK-Android开发的 Android Demo:Open-IM-Android-Demo ,供开发者参考

(8)基于Open-IM-SDK-Flutter开发的 Flutter Demo:Open-IM-Flutter-Demo ,供开发者参考

(9)基于Open-IM-SDK-Uniapp开发的 uni-app Demo:Open-IM-Uniapp-Demo,供开发者参考

(二)服务端

(1)纯 golang 实现的服务端 Open-IM-Server

(2)docker 镜像:open-im-server

(三)管理后台

包含统计报表、用户管理等运营管理系统:Open-IM-Admin(开发中)

Open-IM 有什么特色

(1) 社区版开源永久免费

社区版代码全部开源,永久免费,包括客户端和服务端,由前微信技术专家打造,并邀请全球技术极客参与建设。

(2) 易扩展

服务端采用 golang 实现,首创“一切皆消息”的通讯模型,轻松实现自定义消息和扩展功能。

(3) 专业技术服务

每个技术人员都承担技术客服的角色,强化社区,不提工单,及时解答。

(4) 高性能

借鉴并优化通讯架构,抽象在线消息、离线消息、历史消息存储模型,分层治理架构,支持集群部署。

(5) 安全

社区版代码全部开源,服务端私有化部署,数据自我掌控。未来加入全球最安全的 signal 端到端加密协议。

(6) 全平台支持

目前支持 Andorid、 iOS、Flutter、Uniapp、Unity、Windows 等主流终端平台,Flutter、iOS、Uniapp 已有成熟 demo 可以体验。

开发者可以使用 Open-IM 替代市场上各种 IM 云服务,除了降低成本,还赋予开发者更多的灵活性和自主性。我们通过开源的方式,邀请全球技术极客来参与 Open-IM 建设,使每位开发者都能免费使用最优秀的 IM 组件,让每个 app 都具备即时通讯能力。

市场现有产品的痛点

自互联网诞生以来,即时通讯平台就一直存在。从世界范围来看,WhatsApp、Facebook、 微信、Telegram 是领先的消息平台,用户主要使用这些平台与家人和朋友保持联系。随着互联网的发展,人与人之间的沟通是刚需,无处不在,几乎所有的 APP 都集成 IM 功能,从社交、游戏、到生活中的方方面面,打车、找房等。可以说 IM 作为一种通讯能力,已经成为互联网上的基础设施,成为许多 APP 不可或缺的功能。

如何让 APP 具备 IM 功能,一般有如下三种解决方案:

第一:自研。IM 是一个看起来门槛很低的项目,网上有很多所谓的 IM 开发教程,甚至很多毕业生的毕业设计也是做一个 IM 系统。由于这个误解,很多企业主或者项目经理盲目乐观组建 3-5 个人的 IM 团队,历时一年半载,最后只完成了一个 demo 版本。由于架构设计不合理,demo 版本存在消息丢失、系统异常等 bug,远远达不到商业化的要求。

第二:使用 IM 云服务商的 SDK。很多企业自研 IM 这条路走不通,IM 云服务商看到了商业机会,通过提供 IM SDK 和 API 的方式,让开发者简单集成 IM 功能。当然这里也存在明显的问题。(1)成本问题:企业每年额外支付上万乃至数十万的云服务费用,是个不小的成本;(2)数据隐私问题:企业的用户数据、聊天记录等核心数据存储在 IM 云服务商,如何保证数据的安全性是个极大挑战;(3)需求定制问题:IM 需求多样化,IM 功能只能由 IM 云服务商通过 SDK 的形式提供给大家使用,对于一些定制化的需求,是否支持,什么时候实现,都是个未知数;(4)云服务商绑架问题:一旦使用 IM 云服务,形成捆绑关系,迁移成本高,受制于人。

第三:使用开源 IM。github 上 IM 开源项目不少,但开发者却很难使用,主要有几点原因(1)个人项目居多,虽然有些项目也有几 k star,但近几年都无人维护,真正的商业化产品不敢使用;(2)大部分项目不是 IM 技术专业团队完成的,技术实力和技术架构存疑,也没有经过大项目和海量用户检验;(3)只开源服务端或者客户端,只开源某一端,需要开发者实现另外一端,研发成本同样不小,另外,开源项目大部分都是以单独的聊天产品开源,开发者如何把 IM 集成到自身 app 中,同样存在大量的修改和适配成本。(4)部分开源项目免费版功能缺失,商业版收费。

Open-IM 优势

(1)前微信技术专家打造,多年 IM 从业经验。优秀的技术架构,经受过海量用户检验;

(2)完整组件,一键部署,轻松集成。客户端提炼成方便集成的 SDK,服务端通过 docker 一键部署,运营管理系统展示后台数据;

(3)全开源,不存在任何闭源收费版本。增加开源社区的参与积极性,产生黏性、惯性、认同感、归属感以及忠诚度,引入更多技术极客,进一步完善 Open-IM;

(4)社区版免费,给初创企业每年节省上万费用。对于使用 IM 云服务的企业,每年可以节省上万乃至数十万费用;

(5)私有化部署,无任何关联。开发者一键部署 Open-IM 在自家服务器上,完全摆脱了对第三方的依赖,数据隐私可控、有保障;

(6)方便定制,采用“一切皆消息”的通讯模型。代码开源,对于自定义需求,开发者可以修改客户端代码轻松实现;

(7)高性能、微服务、集群化。系统具备平行扩展能力,支持服务注册、服务发现。满足初创企业简单一键部署需求,同时也满足中大型企业集群化部署需求。

(8)收取技术服务费,打造长远、健康的商业模式。对于开发者来说,可以免费使用我们社区版的全部技术和代码。对于高标准的开发者,可以使用我们的专业版,订阅我们的技术服务,我们为之提供更专业的技术服务、咨询服务和私有化部署服务。

我们的使命

从公司成立之初就将“开源”作为核心战略来推进,开源充分体现了自由、平等、分享的互联网精神。

全球范围频繁发生的数据泄露、勒索病毒、隐私滥用等安全事件一次次给企业敲响警钟,企业管理者对数据资产的价值、数据安全的重要性有了更清晰的认识,数据安全成就企业核心价值。

IM 作为核心业务数据,安全的重要性毋庸置疑,OpenIM 开源以及私有化部署让企业能更放心使用。

如今 IM 云服务商收费高企,如何让企业低成本、安全、可靠接入 IM 服务,是 OpenIM 的历史使命,也是我们前进的方向。

我们的团队

创始团队来自前微信高级架构师、IM/WebRTC 专家团队,我们致力于用开源技术创造服务价值,打造轻量级、高可用的 IM 架构,开发者只需简单调用 SDK,即可在应用内构建多种即时通讯及实时音视频互动场景。

OpenIM 邀请全球技术极客参与技术优化,让开发者轻松集成,让每一个应用都具备 IM 功能,同时考虑企业的接入成本、服务器资源以及最重要的数据安全性和私密性。


OpenIM github 开源地址:

https://github.com/OpenIMSDK/Open-IM-Server

OpenIM 官网 :https://www.rentsoft.cn

OpenIM 官方论坛:https://forum.rentsoft.cn


OpenIM 原创文章:

【OpenIM原创】开源OpenIM:轻量、高效、实时、可靠、低成本的消息模型

【OpenIM原创】C/C++调用golang函数,golang回调C/C++函数

【OpenIM原创】简单轻松入门 一文讲解WebRTC实现1对1音视频通信原理

【OpenIM扩展】OpenIM服务发现和负载均衡golang插件:gRPC接入etcdv3

【开源OpenIM】高性能、可伸缩、易扩展的即时通讯架构

用户头像

OpenIM

关注

还未添加个人签名 2021.08.30 加入

还未添加个人简介

评论

发布
暂无评论
【OpenIM原创】IM服务端docker、源码、集群部署 非常实用