π OpenIM: An Open-Source Instant Messaging SDK Solution
OpenIM consists of two main components: OpenIMSDK and OpenIMServer. Their main features are:
π¦ OpenIMSDK
- Embedded directly into applications as a library.
π₯οΈ OpenIMServer
- Deployed as an independent server-side program.
π’ Note: OpenIMSDK does not integrate a UI interface, and OpenIMServer does not provide user registration and login functions, meaning it's not a complete IM product.
π Detailed about OpenIMSDK
OpenIMSDK is the IM SDK designed for OpenIMServer, made specifically for embedding into client applications. Its main features and technical characteristics are:
π Key Features:
- π¦ Local storage
- π Listener callback
- π‘οΈ API encapsulation
- π Connection management
π Main Modules:
- π Initialization and login
- π€ User management
- π« Friend management
- π€ Group functions
- π¬ Conversation handling
π§ Technical Implementation:
- ποΈ Written in Golang
- π Cross-platform compilation using Gomobile
- πΈοΈ Web SDK implementation using wasm technology
- π C interface export via cgo
- π Covers almost all platforms and languages
Platform/Language | SDK Resource Link | SDK Description | Sample Resource Link | Description |
---|---|---|---|---|
Golang | open-im-sdk-core | Golang version SDK using Gomobile/wasm/cgo | - | - |
iOS | open-im-sdk-ios | iOS version SDK | open-im-ios-demo | iOS sample |
Android | open-im-sdk-android | Android version SDK | open-im-android-demo | Android sample |
Flutter | open-im-sdk-flutter | Flutter version SDK | open-im-flutter-demo | Flutter sample |
uni-app | open-im-sdk-uniapp | uni-app version SDK | open-im-uniapp-demo | uni-app sample |
JS SDK | open-im-sdk-web-wasm | JS SDK version | open-im-pc-web-demo | PC web sample |
React Native | open-im-sdk-reactnative | React Native SDK | open-im-reactnative-demo | React Native sample |
π Detailed about OpenIMServer
OpenIMServer has the following characteristics:
- 𧩠Made up of multiple modules, such as the gateway and several rpc services.
- π Microservice architecture, supports cluster mode.
- π Variety of deployment methods, like from source code, kubernetes or docker deployment.
π OpenIMServer Repository Link
π REST API
- OpenIMServer offers a REST API for business systems, aiming to provide more functionalities, like creating groups or sending push notifications via backend interfaces.
π Callback
- OpenIMServer provides callback capabilities to expand more business forms. In this context, a callback means that OpenIMServer will send a request to the business server either before or after a certain event, such as a callback before or after sending a message.
Top comments (0)