OpenIM 文档方面的建设始终远远落后于开发,也常常被开发者诟病,在接下来一周的工夫里,咱们重点补齐文档,让开发者更轻松接入。因为 app sdk 底层都是 go 来实现,所以本文先写一个模板和框架,在接下来的工夫里,会有 iOS、Android、Flutter、Uniapp、jssdk 共事补充具体的细节,并更新到官网
初始化及登录
初始化并登录胜利回调,是失常应用 OpenIM 服务的前提
SDK | 形容 |
---|---|
[Login] | 登录,如果登录胜利,必须退出登录能力再次执行登录操作 |
[Logout] | 退出登录 |
[GetLoginStatus] | 获取登录状态,101:登录胜利,102:登陆中,103:登录失败,201:退出登录 |
[GetLoginUser] | 获取以后登录用户 UserID,此时用户登录状态未知 |
[initSDK] | 初始化 SDK,整个生命周期执行一次,登录相干监听介绍如下: |
OpenIM 和调用方利用监听回调机制,和调用方信息互通,把登录状态通过异步回调形式即时传递给调用方,确保信息及时传播而不阻塞其主线程。
监听阐明
登录相干监听 | 回调形容 |
---|---|
[OnConnecting] | 连贯中,在连贯后盾时(包含重连)回调 |
[OnConnectSuccess] | 连贯胜利 |
[OnConnectFailed] | 连贯失败,如果因网络连接失败会重连,其余状况不重连 |
[OnKickedOffline] | 被踢下线,可能因为多端登录策略所致,或后盾管理员强制其退出登录 |
[OnUserTokenExpired] | 检测 token 过期回调 |
调用流程
OpenIM 调用流程分为如下几步:
(1)初始化:在整个生命周期执行一次
(2)设置监听:包含群组监听,好友监听,用户监听,音讯及会话监听,这些监听会在其余章节中形容
(3)登录:登录回调胜利后再执行其余操作,否则可能呈现资源加载未实现的谬误
(4)收发音讯等操作;
好友治理相干接口
OpenIM 提供好友关系托管,比方好友申请,批准,以及好友获取等,OpenIM 在客户端本地存储好友关系,并联合音讯告诉机制,按需调用后盾接口,确保本地和服务端数据统一。同时利用监听机制,把数据变动通过异步回调传播调用方。OpenIM 在收发音讯时,默认不查看好友关系,您能够在配置文件中自行批改。OpenIM 好友关系是双向关系,A 增加 B 为好友后,则 A 在 B 的好友列表中,B 也在 A 的好友列表中,A 删除 B,仅仅只是删除 A 的好友列表,而 B 的好友列表不受影响。同样,黑名单也相似。
SDK | 形容 |
---|---|
[GetDesignatedFriendsInfo] | 获取指定好友的信息 |
[GetFriendList] | 获取所有的好友列表 |
[SearchFriends] | 通过关键词搜寻好友 |
[CheckFriend] | 查看是否好友关系 |
[AddFriend] | 发动增加好友申请 |
[SetFriendRemark] | 设置好友备注 |
[DeleteFriend] | 删除好友(单向删除) |
[GetRecvFriendApplicationList] | 获取我收到的增加好友申请列表 |
[GetSendFriendApplicationList] | 获取我发动的的增加好友申请列表 |
[AcceptFriendApplication] | 批准好友申请 |
[RefuseFriendApplication] | 回绝好友申请 |
[SetFriendListener] | 设置好友、黑名单相干监听,用于 UI 层实时感知数据变动并刷新 |
监听阐明
好友监听器的作用:调用方设置好友监听,好友关系的变动会通过 OpenIM 音讯机制实时同步到须要感知的在线用户,包含用户的其余端,调用方依据回调事件做相干的数据处理。
比方用户 B 在 Android 端增加用户 A 为好友,用户 A(所有在线的终端)收到 B 的好友申请,则 A 调用 GetRecvFriendApplicationList 获取收到的好友申请列表,刷新界面。同时,用户 B 在线其余的终端比方 PC 端也会收到告诉,B 调用 GetSendFriendApplicationList 获取发动的好友申请列表,刷新 B 收回的好友申请列表。
当然也能够利用回调的参数信息,做增量解决,而不必获取全量的好友申请列表。
以用户 B 申请增加用户 A 为例
好友及黑名单监听 | 形容 |
---|---|
[OnFriendApplicationAdded] | 好友申请列表减少,被动发起者和被动增加者会收到 |
[OnFriendApplicationDeleted] | 好友申请列表删除,被动删除者会收到 |
[OnFriendApplicationAccepted] | 好友申请被批准,被动发起者和被动增加者会收到 |
[OnFriendApplicationRejected] | 好友申请被回绝,被动发起者和被动增加者会收到 |
[OnFriendAdded] | 好友减少,用户好友减少时会收到 |
[OnFriendDeleted] | 好友删除,用户好友缩小时会收到 |
[OnFriendInfoChanged] | 好友信息扭转,用户好友信息(比方昵称等)扭转时会收到 |
[OnBlackAdded] | 黑名单减少,用户黑名单减少时会收到 |
[OnBlackDeleted] | 黑名单移除,用户黑名单缩小时会收到 |
我的项目介绍
OpenIM 持续领跑开源 IM 畛域,在宽广开发者的反对下,目前 github star 冲破 9k。在数据泄露、信息外泄、隐衷滥用的时代,IM 私有化部署需要旺盛。其中,政企协同办公对 IM 需要猛增,随着信息化技术的迭代降级以及信创产业减速落地和实际,协同办公软件的发展潜力将进一步被开释。“平安可控“逐渐成为第一因素。对于社区交友畛域,暴露出的隐衷平安问题越来越多,私有化部署确保用户数据不泄露。
OpenIM 从服务端到客户端 SDK 开源即时通讯(IM)整体解决方案,能够轻松代替第三方 IM 云服务,打造具备聊天、社交、办公性能的 app。
github 地址:https://github.com/OpenIMSDK/…
开发者核心:https://doc.rentsoft.cn/#/
OpenIM 团队
开创团队来自资深 IM 技术团队,咱们致力于用开源技术发明服务价值,打造轻量级、高可用的 IM 架构,开发者只需简略调用 SDK,即可在利用内构建多种即时通讯及实时音视频互动场景。OpenIM 劣势:开源,平安,牢靠,低成本。对于信息安全器重的电子政务,企业协同办公,OpenIM 都是十分好的抉择。
从公司成立之初就将“开源”作为外围策略来推动,开源充分体现了自在、平等、分享的互联网精力。
OpenIM 邀请寰球技术极客参加技术优化,让开发者轻松集成,让每一个利用都具备 IM 性能,同时思考企业的接入老本、服务器资源以及最重要的数据安全性和私密性。