🚀 OpenIM: An Open Source Instant Messaging SDK Solution
OpenIM consists of two main components: OpenIMSDK and OpenIM Server. Its main features are as follows:
📦 OpenIMSDK
- Embedded directly into applications as a library file.
🖥️ OpenIM Server
- Deployed as an independent server-side program.
📢 Note: OpenIMSDK does not integrate a UI interface, and OpenIM Server does not provide user registration and login functionality. This means it is not a complete IM product.
📘 Detailed Explanation of OpenIMSDK
OpenIMSDK is an IM SDK designed for OpenIM Server, specifically created for embedding in client applications. Its main functions and technical features are as follows:
🌟 Key Features:
- 📦 Local Storage
- 🔔 Listener Callbacks
- 🛡️ API Encapsulation
- 🌐 Connection Management
📚 Main Modules:
- 🚀 Initialization and Login
- 👤 User Management
- 👫 Friend Management
- 🤖 Group Functions
- 💬 Session Handling
🔧 Technical Implementation:
- 🏗️ Written in Golang
- 🌉 Cross-platform compilation using Gomobile
- 🕸️ Web SDK implementation using wasm technology
- 🌌 C interface export through cgo
- 🌍 Covers almost all platforms and languages
Platform/Language | SDK Resource Link | SDK Description | Example Resource Link | Description |
---|---|---|---|---|
Golang | open-im-sdk-core | Golang version SDK, implemented using Gomobile/wasm/cgo | ||
iOS | open-im-sdk-ios | iOS version SDK | open-im-ios-demo | iOS example |
Android | open-im-sdk-android | Android version SDK | open-im-android-demo | Android example |
Flutter | open-im-sdk-flutter | Flutter version SDK | open-im-flutter-demo | Flutter example |
uni-app | open-im-sdk-uniapp | uni-app version SDK | open-im-uniapp-demo | uni-app example |
JS SDK | open-im-sdk-web-wasm | JS SDK version | open-im-pc-web-demo | PC web example |
React Native | open-im-sdk-reactnative | React Native SDK | open-im-reactnative-demo | React Native example |
🔍 Detailed Explanation of OpenIM Server
OpenIM Server has the following features:
- 🧩 Composed of multiple modules, such as gateway and multiple rpc services.
- 🌐 Microservice architecture, supporting cluster mode.
- 🚀 Various deployment methods, such as source code, Kubernetes, or Docker deployment.
🔗 OpenIM Server Repository Link
🌐 REST API
- OpenIM Server provides REST APIs for business systems, enabling more functionalities like creating groups and sending push messages through backend interfaces.
📞 Callback
- OpenIM Server offers callback capabilities to extend more business forms. Callbacks refer to OpenIM Server sending requests to business servers before or after certain events, like before or after sending a message.