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部署,可平行扩展,亿级用户,千亿级消息。