8 Star 12 Fork 5

Gitee 极速下载 / OpenIM

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/openim/openim
克隆/下载
README.md 2.51 KB
一键复制 编辑 原始数据 按行查看 历史
Peter Jiang 提交于 2016-09-24 05:07 . add intro

openIM

Build Status Coverage Status Go Report Card

an open source IM (instance message) system. We are using slack to discuss projects. Find us at: https://openim.slack.com/

Motivation

  • XMPP is complicated, may be we could simplify it.
  • Communication should be safe for everyone. Nobody could sniff the information content. The communication behavior (to whom you send message) should also be protected.
  • Instance Message is just a channel for communication, could be used for man-man, machine-to-machine communicating.
  • Web should be open, not closed. IM is a part the Web.

That's why we need an open source IM project, we provides server side and client side implementation. So everybody could build a IM cluster even in your living-room.

The whole is an open, distributed, decentralized, XMPP-compatible, End-2-End encryption IM system.

Develop Document

Wiki first. May move to readthedocs later when API is stable

Architecture

openIM architecture

Modules

Connection Layer

TCPConnector

openIM binary protocol client

UDPConnector

openIM binary protocol client

XMPPConnector

standard XMPP client

MQTTConnector

standard MQTT client

WSConnector

websocket client using openIM binary protocol

HTTP2Connector

HTTP2 client using openIM binary protocol

Distribution Layer

Router

  • route logic message by message type
  • maintain location database of all clients, a distributed kv store cluster

Messenger

dispatch client message to each single user, and save the message when client is offline

PushProxy

  • maintain remote push token(APNs, Google token)
  • push message to remote push service (APNs, GCM)

GroupMan

handle group message distribution

XMPPGateway

implement XMPP Server2Server(s2s) protocol

Data Layer

DBProxy

database proxy, provide API to access database

Database

database to be supported:

  • Redis
  • MySQL
  • PostgreSQL

Contributing

Contributions are welcomed and greatly appreciated. See CONTRIBUTING.md for details

Java
1
https://gitee.com/mirrors/OpenIM.git
git@gitee.com:mirrors/OpenIM.git
mirrors
OpenIM
OpenIM
master

搜索帮助