OpenIM简介

OpenIM是由IM技术专家打造的开源即时通讯组件,也是目前最受欢迎的开源IM项目之一,目前github star近万。开发者通过集成OpenIM组件,并私有化部署服务端,可以将即时通讯、实时通讯能力快速集成到自身应用中,并确保业务数据的安全性和私密性。

github地址:https://github.com/OpenIMSDK

文档中心:https://doc.rentsoft.cn/#/

平台支持

以下平台都支持,消息互通,且多端实时同步。

平台 IMSDK 音视频通话 带UI的商业版 工作圈 组织架构

Android 支持 支持 支持 未完成 未完成

iOS 支持 支持 支持 未完成 未完成

Web 支持 支持 支持 无 支持

Uniapp 支持 不支持 支持 未完成 未完成

Flutter 支持 支持 支持 支持 支持

Electron(win/mac) 支持 支持 支持 无 支持

商业版本是针对政企办公场景,OpenIM技术团队在100%开源的OpenIM服务端和IMSDK基础上,开发功能完整的IM产品。客户经授权后,可以直接部署运营商业版,也可以在此基础上二次开发。

帐号功能

功能类型 功能描述

帐号导入 以管理员身份批量导入帐号和业务系统对接

帐号禁用 封号,禁止登录

用户在线状态 查询在线和离线状态

查询帐号 查询帐号是否导入

设置用户资料 设置用户昵称、头像、性别、年龄等资料

获取用户资料 用户查看自己、好友及陌生人资料

强制退出登录 管理员强制用户退出登录

多端登录

功能类型 功能描述

双平台登录 Android、iOS、iPad、Windows、Mac 每端只能1个在线;Web可同时在线10个

消息类型

功能类型 功能描述

文本消息 消息内容是普通文本

图片消息 消息内容为图片 URL 地址、尺寸、图片大小等信息,支持MinIO,cos,oss,s3存储

表情消息 表情消息为开发者自定义

语音消息 语音数据需要提供时长信息,以秒为单位

地理位置消息 消息内容为地理位置标题、经度、纬度信息

文件消息 消息内容为文件的 URL 地址、大小、格式等信息,格式不限,大小不限,支持MinIO,cos,oss,s3存储

视频消息 消息内容为视频文件的 URL 地址、时长、大小、格式等信息,大小不限,支持MinIO,cos,oss,s3存储

自定义消息 开发者自定义的消息类型

系统通知消息 包含内置的系统通知消息和开发者自定义系统通知消息

Tips 消息 系统性通知消息,例如有成员进出群组,群的描述信息被修改,群成员的资料发生变化等,好友申请,好友增加等

合并消息 最大支持10条消息合并

回复消息 针对消息进行引用回复

阅后即焚消息 在单聊下开启后,对方已读后30秒自动删除

消息功能

功能类型 功能描述

离线消息 用户登录后退到后台,当有用户给其发消息时,即时通信 IM 支持离线推送

漫游消息 在新设备登录时,将服务器记录(云端)的历史消息存储进行同步,可以配置延长

多端同步 多终端消息同步,可同时收到消息

历史消息 支持本地历史消息和云端历史消息

消息撤回 撤回操作支持单聊和群聊消息,撤回时间未限制,群内管理员可以撤回群成员消息

已读回执 支持单聊已读未读状态,群聊支持查看哪些人已读未读状态

消息转发 将消息转发给其他用户或群组

@功能 群内 @ 消息与普通消息没有本质区别,仅是在被 @ 的人在收到消息时,需要在 UI 上做特殊处理

正在输入 能实时感知对方正在输入

离线推送 支持极光、个推、google firebase推送

消息删除 支持删除本地和服务端消息

标签推送 创建标签,针对标签群发消息

本地消息搜索 支持搜索好友,搜索群组、群成员;搜索消息,会话

会话功能

功能类型 功能描述

置顶会话 置顶会话,并多端同步

删除会话 删除会话,会话内消息也会删除

设置免打扰 接收消息但不提醒;不接收消息

设置单聊阅后即焚 对方已读就30秒双方自动删除

关系链功能

功能类型 功能描述

查找好友 可通过用户帐号 ID 、二维码查找好友

申请添加好友 要选择默认是否需要申请理由,目前是默认不需要

添加好友 发送添加好友请求

导入好友 支持批量导入单向好友

删除好友 成为好友后可以删除好友,好友是双向关系

获取所有好友 获取所有好友,

同意/拒绝好友 收到请求加好友请求的系统通知后,可以通过或者拒绝

添加用户到黑名单 把任意用户拉黑,如果此前是好友关系不会解除好友关系

移除黑名单 把用户从黑名单中移除

获取黑名单列表 拉取用户黑名单列表

好友备注 成为好友后可以给好友备注

校验好友 支持校验好友关系

校验黑名单 支持校验黑名单

关系链资料存储 SDK 对关系链资料进行存储

好友资料变更系统通知 好友资料变更可以收到系统通知

群组功能

创建群组 任何人可以创建群组

退出群组 群主不能退出群组

解散群组 群主解散群组

申请加群 可以通过群二维码 群ID申请加群,由群主和管理员审批

加群审批 群主和管理审批

邀请加群 群成员邀请加群可直接进群或由管理员审批

修改群信息 修改群头像、群名称、群公告编辑

踢出群 群主和管理员移除群成员

搜索 搜索群成员昵称和UserID

群成员资料修改 群昵称 群头像修改,并实时通知群成员

管理员撤回群内消息 不受时间限制撤回消息

进群验证设置 管理员设置,可直接进群;进群需要验证;群成员邀请直接进群

群成员权限设置 不允许查看群成员资料;不允许添加群成员为好友

群主转让 群主身份转让给群成员

禁言 全体禁言,个人禁言

超级大群 支持10万人群

新成员进群查看历史消息 支持新成员进群查看(不查看)历史消息

成员变更通知新 所有成员都能收到通知,包括成员进群、退群、邀请进群、成员被踢等,并实时通知

群资料变更通知 所有成员都能收到通知,包括群头像、群名、群公告被修改,并实时通知

音视频通话

1对1音视频 支持主动拨号、接听、挂断;支持被动回调:呼叫,接听,挂断,超时

多对多音视频 支持主动拨号、接听、挂断;支持被动回调:呼叫,接听,挂断,超时

事件回调

用户登录回调 用户登录成功后通过callback回调业务服务器

用户退出登录回调 用户退出登录成功后通过callback回调业务服务器

发送单聊消息前回调 用户发送单聊消息前通过callback回调业务服务器

发送单聊消息后回调 用户单聊消息后通过callback回调业务服务器

发送群组消息前回调 用户发送群组消息前通过callback回调业务服务器

发送群组消息后回调 用户发送群组消息后通过callback回调业务服务器

消息推送前回调 消息推送前回调通过callback回调业务服务器

组织架构

创建部门 管理员创建部门

创建用户 管理员创建用户

把用户导入某个部门 管理员把用户导入某个部门,一个用户可以在多个部门中

删除部门 管理员删除部门及部门成员

删除用户 管理员删除用户,用户的部门信息也被删除

删除部门中的某个用户 管理员删除某个部门的某个用户

获取部门的所有成员 获取部门的所有成员信息

获取子部门列表 获取下级子部门列表

获取用户所在的所有部门 获取用户所有部门的岗位信息

更新部门信息 管理员更新部门信息

更新组织架构中的用户信息 管理员更新用户的基本信息

更新部门中的用户信息 管理员更新用户的岗位信息

工作圈

发布图文、发布视频 发布图文,及1分钟视频

删除动态 删除动态

浏览、评论、点赞 默认是所有人可以操作

评论、点赞实时提醒 实时提醒发布者

权限设置 可设置谁可见

性能

单机8核32G,100Mb带宽, 6个SSD。

同时在线 10万人

每秒消息数 5000条

消息延时 平均1-2秒

消息可达率 100%

Cpu使用率 90%

内存占用 28G

系统支持集群部署,支持k8s部署,可平行扩展,亿级用户,千亿级消息

收藏-即时通讯(IM)开源项目OpenIM-功能手册的更多相关文章

  1. 值得收藏--GitHub Top 20 开源项目

    参考链接:https://github.com/Aufree/trip-to-iOS/blob/master/Top-100.md 项目名称                            项目 ...

  2. 讲解开源项目:功能强大的 JS 文件上传库

    本文作者:HelloGitHub-kalifun HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  3. 收藏的一些github开源项目,在这里记录一下

    1.在windows系统上在命令行中执行rm -fr */*.file 会报错, rimraf这个项目提供了跨平台支持rm命令,github地址: https://github.com/isaacs/ ...

  4. iOS开源项目MobileProject功能点介绍

    一:MobileProject简介 MobileProject项目是一个以MVC模式搭建的开源功能集合,基于Objective-C上面进行编写,意在解决新项目对于常见功能模块的重复开发,MobileP ...

  5. 可在广域网部署运行的即时通讯系统 -- GGTalk总览(附源码下载)

      (最新版本:V6.2,2019.01.03 .Xamarin移动端版本已经推出,包括 Android 和 iOS) GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网, ...

  6. 【转】可在广域网部署运行的即时通讯系统 -- GGTalk总览(附源码下载)

    原文地址:http://www.cnblogs.com/justnow/p/3382160.html (最新版本:V6.0,2017.12.11 .即将推出Xamarin移动端版本,包括 Androi ...

  7. Android 开源项目 eoe 社区 Android 客户端(转)

    本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...

  8. 即时通讯(III)

    即时通讯的开源库 目前及时通讯可以使用环信.柔云.腾讯云,这些都是基于TCP连接的,UI也是高度定制的,而且它们的技术也是比较成熟的. XMPP比较早,是开源的,但是坑也比较多.传输的数据是XML,造 ...

  9. Android 开源项目 eoe 社区 Android 客户端

    本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...

  10. 5 天 4000 star 的一个爆款开源项目

    今天早上起来浏览 GitHub 的时候,在周热门趋势排行榜上看到了这么一个开源项目,仅仅 5 天时间,爬到了周排行榜的第一名的位置.而在每天的排行榜上,今天一早也高高位居排行榜的第二位. 这个开源项目 ...

随机推荐

  1. 火山引擎DataLeap如何解决SLA治理难题(一):应用场景与核心概念介绍

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 基于火山引擎分布式治理的理念,数据平台数据治理团队自研了火山引擎DataLeap SLA保障平台,目前已在字节内部 ...

  2. 【原理篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview

    本文首发我的微信公众号徐公,收录于 Github·AndroidGuide,这里有 Android 进阶成长知识体系, 希望我们能够一起学习进步,关注公众号徐公,5 年中大厂程序员,一起建立核心竞争力 ...

  3. 你真的了解token续期嘛?

    Spring Boot + Vue中的Token续签机制 在现代的全栈应用开发中,Spring Boot作为后端框架和Vue.js作为前端框架的组合非常流行.在这种架构中实现Token续签是保障应用安 ...

  4. TypeError: this.libOptions.parse is not a function

    安装完node.js运行项目后,报错: TypeError: this.libOptions.parse is not a function at ESLint8Plugin.<anonymou ...

  5. 供应链安全情报 | cURL最新远程堆溢出漏洞复现与修复建议

    漏洞概述 cURL 是一个支持多种网络协议的开源项目,被广泛集成到自动化构建.网络测试.网络数据采集以及其他网络相关的任务中,备受开发者和系统管理员青睐. cURL在2023年10月11日下午紧急发布 ...

  6. 4 Englishi 词根

    11 -ism  N词后缀   ...主义: 流派: 特性 individualism captitalism modernism humanism 12 -ist N词后缀  人: ...家 art ...

  7. vue-devtools调试工具

  8. 介绍几种OPTIONS检测的方法

    概述 日常的VOIP开发中,OPTIONS检测是常用的网络状态检测工具. OPTIONS原本是作为获取对方能力的消息,也可以检测当前服务状态.正常情况下,UAS收到OPTIONS心跳,直接回复200即 ...

  9. Jstack 查看线程状态及定位占用 cpu 较高的 java 线程

    本文为博主原创,未经允许不得转载: 1. Jstack 用来查看 java 指定进程所包含的 java 线程状态:    "arthas-NettyHttpTelnetBootstrap-3 ...

  10. SV 接口

    概述 接口 main bus有很多信号线 verilog会先将模块的输出信号拉出来,然后再将其连接到其他模块,进行不同模块之间的连接比较麻烦且容易出错 interface - 将端口封装到接口中 接口 ...