开源IM项目OpenIM发布消息推送api,支持应用与IM互通深度融合

开源IM项目OpenIM发布消息推送api,支持应用与IM互通深度融合,第1张

以办公场景为例,比如员工入职通知,放假通知等业务通知,由oa系统处理具体的业务逻辑,再调用消息推送api,触达到目标用户

效果示例

以协同办公为例,员工收到系统推送的工作通知,有新任务需要处理。  

员工点击工作通知,可以查看具体详情,每条通知有不同的发送者昵称和头像。这种通知类型是一种新的会话类型,全部聚合在同一个会话。

OpenIM简介

OpenIM:从服务端到客户端SDK开源即时通讯整体解决方案。开发者可以轻松替代第三方IM云服务,打造具备聊天、社交功能的app,也可以在自身应用中集成SDK,以提供即时通讯能力。开源IM的价值在于“一切皆可控”“我的信息我做主”,无论是技术,还是信息安全。

整体超过72K star,OpenIM作为开源IM的领跑者,持续添加新功能,包括消息推送api,群聊已读。服务端和sdk都是Apache-20 License授权协议,可以免费使用。带有UI的产品需要商业授权,有兴趣的客户可以联系我们深度交流。

5X8小时vip专属服务,包括:

(1)一对一技术咨询,微信 电话等各种方式;

(2)sdk使用辅导咨询;

(3)服务端架构及部署答疑;

(4)IM新需求优先排期;

(5)bug优先修复;

(6)系统维护和故障响应;

web端体验:>OpenIM文档方面的建设一直远远落后于开发, 也经常被开发者诟病,在接下来一周的时间里,我们重点补齐文档,让开发者更轻松接入。由于app sdk底层都是go来实现,所以本文先写一个模板和框架,在接下来的时间里,会有iOS、Android、Flutter、Uniapp、jssdk同事补充具体的细节,并更新到官网
![0](C:\Users\Administrator\Desktop\OpenIM\官网相关\技术文章\6-25\0png)
## 初始化及登录
初始化并登录成功回调,是正常使用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地址: >系统bug。风车IM是一款是一款独立服务器部署的即时通讯解决方案,可以帮助你快速拥有一套自己的移动社交,该软件在运行时如果一直打不开,是系统bug的原因,只需要将该软件卸载重新打开即可。

即时通信(Instant Message /IM)的含义
有许多的IM系统,如AOL、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议
协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初始协议(SIP)和即时通讯对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和即时通讯协议(PRIM)及基于XML且开放的可扩展通讯和表示协议(XMPP)协议(常称为 Jabber 协议)
XMPP
XMPPframeWork
配置MYSql服务器

配置客户端

XMPP的框架就是用的她 我们把TCP的Socket 叫做 流式 stream UDP 的socket 叫做 报文或报式 Socket

XMPP :Extensible Messaging and Presence Protocol,以Jabber协议(XMPP协议前身)为基础 XMPP协议基于可扩展标记语言XML,建立TPC/IP连接,完成C/S、C/C、S/S之间的数据传输。XMPP是一个消息传输国际化标准协议。 XMPP官网:>

即时通讯(Instant Messenger,简称IM),是一种基于网络满足用户即时交流消息的通信方式,企业即时通讯:简称EIM(Enterprise Instant Messaging),则是一种面向企业用户的网络沟通工具服务方式,使用者通过公司提供的即时通讯工具客户端进行各方的实时沟通,可以发送文字、语音、视频、文件等内容。
典型的公司即时通讯工具有信源密信(原名信源豆豆),是信息安全终端龙头企业北信源耗费12亿资金研发的安全即时通讯工具。具有微信、钉钉所有的通讯功能,但也自主研发了长语音视频、单次阅读、双向删除、禁止转发、阅读水印等安全功能,可以让企业时刻保证数据不泄露,信息安全有保障。感兴趣的可以去信源密信官网下载试用。 实力碾压


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12614877.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存