CIM一套完善的消息推送框架

一套基于Netty的完善的消息推送框架

一、背景

​ 公司项目有许多需要发送即时消息的场景,之前一直采用的是传统的websocket连接,它会存在掉线严重,不可重连,不支持高并发等缺点,在这样的背景下,急需一款成熟稳定的即时通讯系统。此时发现了一个优秀的开源框架–CIM。CIM是一套基于Netty框架下的推送系统,目前CIM支持websocket,android,ios,桌面应用,系统应用等多端接入支持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用以及后台系统之间的即时消服务。

二、快速入门

  1. 下载源代码,代码地址为:https://gitee.com/farsunset/cim.git,下载完成之后直接使用maven编译即可。

  2. 源代码目录结构如下:

  3. 无需进行数据库的初始化,若想要将用户信息保存持久化可以将CIMSession用户连接信息保存到Redis或者MySQL中,本次示例不做数据库相关操作。

  4. 部署CIM服务端项目

    第一步:修改配置文件

    由于无需连接数据库,因此没有什么需要修改的地方

    第二步:直接启动项目

    启动还是非常便捷的,没有繁琐的配置

    可以看到websocket监听的端口为34566,这也是一会我们要使用的端口

    第三步:打开管理界面

    界面地址为:http://127.0.0.1:8080/

    因为我们还没有登录客户端,因此这里还没有在线用户,稍后我们登录客户端后再来查看。

    至此CIM服务端已部署启动完成。

  5. CIM的web客户端启动

    第一步:找到客户端实例项目

    我们本次主要演示web客户端通过websocket的连接

    第二步:修改配置文件

    web端的配置文件主要在:cim.web.sdk.js

    第三步:启动web客户端

    启动很简单,直接打开index.html文件即可

    效果如下

    第四步:登录CIM

    我们任意输入一个用户名,点击“登录”即可

    登录成功

    我们再来看看服务端的在线用户列表,已经有我们登录的用户,点击“发送消息”按钮即可发送消息

  6. 发送消息

    至此,CIM的快速入门已经完成。

三、大致流程

  1. 首先启动服务器端项目,此时也相当于启动了websocket的服务端,等待用户连接;
  2. 打开web客户端页面,登录用户,连接websocket;
  3. 打开控制台页面,选择已登录的用户,发送消息即可。

可以看到,系统的整体流程并不复杂,还是很容易理解和上手的。

四、框架优势

  1. 该框架是基于主流的Netty框架(Netty的强大已无需多言了),能够保证稳定高效的连接,而且断线重连机制支持的也很好
  2. 易于扩展和使用,并完美支持集群部署支持海量链接,目前支持websocket,android,ios,桌面应用,系统应用等多端接入持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用即时消服务。
  3. 用时7年 基于CIM的项目已经运行在全国各个地方,包括上市公司,各地政务系统,警务系统等服务于上百家客户。
  4. 该框架是基于当前主流的springboot,并且全面拥抱protobuf,替换json序列化方式,更加高效
  5. 从我自身使用体验来讲,该框架已经很好的解决了我司项目之前掉线严重,不可重连,不支持高并发等缺点

五、总结

目前该框架已集成到我司的项目当中,而且已经稳定运行一段时间,很好的解决了之前消息推送的痛点,得到了其他同事的一致好评,而且基于该框架研发的功能也正在准备申请专利,足以说明该框架的稳定与强大。

另外,了解该项目之前建议先了解下Netty的相关原理,能够方便你对于该项目源码的改编,以适用你自己项目的需求。

对于用户信息的持久化,可以使用Redis数据库,方便又高效。

利,足以说明该框架的稳定与强大。

另外,了解该项目之前建议先了解下Netty的相关原理,能够方便你对于该项目源码的改编,以适用你自己项目的需求。

对于用户信息的持久化,可以使用Redis数据库,方便又高效。

最后,假如你当前也有即时消息推送相关的需求,这个完善的消息推送框架还是很值得你去考虑的,详细信息请参考官方地址:https://gitee.com/farsunset/cim

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值