跳到主要内容

🚀 OpenIM: 开源的即时通讯SDK解决方案

OpenIM 由两个主要组件组成:OpenIMSDKOpenIMServer。其主要特点如下:

📦 OpenIMSDK

  • 以库文件的形式,直接嵌入到应用程序中。

🖥️ OpenIMServer

  • 作为独立的服务端程序进行部署。

📢 说明:OpenIMSDK 未集成UI界面,而 OpenIMServer 不提供用户的注册和登录功能,这意味着它并不是一个完整的IM产品。

关系示意图

📘 详解OpenIMSDK

OpenIMSDK 是为 OpenIMServer 设计的IM SDK,专为嵌入客户端应用而生。其主要功能和技术特点如下:

🌟 主要功能:

  • 📦 本地存储
  • 🔔 监听器回调
  • 🛡️ API封装
  • 🌐 连接管理

📚 主要模块:

  1. 🚀 初始化及登录
  2. 👤 用户管理
  3. 👫 好友管理
  4. 🤖 群组功能
  5. 💬 会话处理

🔧 技术实现方面:

  • 🏗️ 使用Golang编写
  • 🌉 利用Gomobile进行跨平台编译
  • 🕸️ wasm技术实现web端SDK
  • 🌌 通过cgo实现c接口导出
  • 🌍 覆盖几乎所有平台和语言
平台/语言SDK资源链接SDK描述示例资源链接描述
Golangopen-im-sdk-coreGolang版本SDK,使用Gomobile/wasm/cgo实现
iOSopen-im-sdk-iosiOS版本SDKopen-im-ios-demoiOS示例
Androidopen-im-sdk-androidAndroid版本SDKopen-im-android-demoAndroid示例
Flutteropen-im-sdk-flutterFlutter版本SDKopen-im-flutter-demoFlutter示例
uni-appopen-im-sdk-uniappuni-app版本SDKopen-im-uniapp-demouni-app示例
JS SDKopen-im-sdk-web-wasmjssdk版本SDKopen-im-pc-web-demoPC web示例
React Nativeopen-im-sdk-reactnativeReact Native SDKopen-im-reactnative-demoReact Native示例

🔍 详解OpenIMServer

OpenIMServer 具有以下特点:

  • 🧩 多模块构成,如网关(gateway)和多个rpc服务。
  • 🌐 微服务架构,支持集群模式。
  • 🚀 部署方式多样,如源代码、kubernetes或docker部署。

🔗 OpenIMServer 仓库地址

🌐 REST API

  • OpenIMServer 提供了REST API供业务系统使用,旨在赋予业务更多功能,例如通过后台接口建立群组、发送推送消息等。

📞 Callback

  • OpenIMServer提供了回调能力以扩展更多的业务形态,所谓回调,即OpenIMServer会在某一事件发生之前或者之后,向业务服务器发送请求,如发送消息之前或之后的回调。