DEV Community

skiffer-git
skiffer-git

Posted on

πŸš€ OpenIM: An Open-Source Instant Messaging SDK Solution

πŸš€ 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.

Relationship Diagram

πŸ“˜ 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:

  1. πŸš€ Initialization and login
  2. πŸ‘€ User management
  3. πŸ‘« Friend management
  4. πŸ€– Group functions
  5. πŸ’¬ 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)