🚀 OpenIM: 开源的即时通讯SDK解决方案
OpenIM 由两个主要组件组成:OpenIMSDK 和 OpenIMServer。其主要特点如下:
📦 OpenIMSDK
- 以库文件的形式,直接嵌入到应用程序中。
🖥️ OpenIMServer
- 作为独立的服务端程序进行部署。
📢 说明:OpenIMSDK 未集成UI界面,而 OpenIMServer 不提供用户的注册和登录功能,这意味着它并不是一个完整的IM产品。
📘 详解OpenIMSDK
OpenIMSDK 是为 OpenIMServer 设计的IM SDK,专为嵌入客户端应用而生。其主要功能和技术特点如下:
🌟 主要功能:
- 📦 本地存储
- 🔔 监听器回调
- 🛡️ API封装
- 🌐 连接管理
📚 主要模块:
- 🚀 初始化及登录
- 👤 用户管理
- 👫 好友管理
- 🤖 群组功能
- 💬 会话处理
🔧 技术实现方面:
- 🏗️ 使用Golang编写
- 🌉 利用Gomobile进行跨平台编译
- 🕸️ wasm技术实现web端SDK
- 🌌 通过cgo实现c接口导出
- 🌍 覆盖几乎所有平台和语言
平台/语言 | SDK资源链接 | SDK描述 | 示例资源链接 | 描述 |
---|---|---|---|---|
Golang | open-im-sdk-core | Golang版本SDK,使用Gomobile/wasm/cgo实现 | ||
iOS | open-im-sdk-ios | iOS版本SDK | open-im-ios-demo | iOS示例 |
Android | open-im-sdk-android | Android版本SDK | open-im-android-demo | Android示例 |
Flutter | open-im-sdk-flutter | Flutter版本SDK | open-im-flutter-demo | Flutter示例 |
uni-app | open-im-sdk-uniapp | uni-app版本SDK | open-im-uniapp-demo | uni-app示例 |
JS SDK | open-im-sdk-web-wasm | jssdk版本SDK | open-im-pc-web-demo | PC web示例 |
React Native | open-im-sdk-reactnative | React Native SDK | open-im-reactnative-demo | React Native示例 |
🔍 详解OpenIMServer
OpenIMServer 具有以下特点:
- 🧩 多模块构成,如网关(gateway)和多个rpc服务。
- 🌐 微服务架构,支持集群模式。
- 🚀 部署方式多样,如源代码、kubernetes或docker部署。
🌐 REST API
- OpenIMServer 提供了REST API供业务系统使用,旨在赋予业务更多功能,例如通过后台接口建立群组、发送推送消息等。
📞 Callback
- OpenIMServer提供了回调能力以扩展更多的业务形态,所谓回调,即OpenIMServer会在某一事件发生之前或者之后,向业务服务器发送请求,如发送消息之前或之后的回调。