当前位置: 首页 > news >正文

CIM搭建实现发送消息的效果

目录

  • 背景
  • 过程
    • 1、下载代码
    • 2、进行配置
    • 3、直接启动项目
    • 4、打开管理界面
    • 5、启动web客户端实例项目
    • 6、发送消息
  • 项目使用
  • 总结

背景

公司项目有许多需要发送即时消息的场景,之前一直采用的是传统的websocket连接,它会存在掉线严重,不可重连,不支持高并发等缺点,在这样的背景下,急需一款成熟稳定的即时通讯系统。此时发现了一个优秀的开源框架–CIM。CIM是一套基于Netty框架下的推送系统,目前CIM支持websocket,android,ios,桌面应用,系统应用等多端接入支持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用以及后台系统之间的即时消服务。开发者可沉浸于业务开发,不用关心消息通道链接,消息编解码协议等繁杂处理。CIM仅提供了消息推送核心功能,和各个客户端的集成示例,并无任何业务功能,需要使用者自行在此基础上做自己的业务,因此需要你有一定的开发经验。

过程

1、下载代码

https://gitee.com/farsunset/cim.git

在这里插入图片描述

2、进行配置

初始化的时候需要连接数据库和redis,所以首先进行配置。在这里插入图片描述

3、直接启动项目

在这里插入图片描述

4、打开管理界面

在这里插入图片描述

5、启动web客户端实例项目

在这里插入图片描述
在这里插入图片描述

6、发送消息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

到这里cim的基本使用方式已经完成。

项目使用

在教师推课切换颗粒的时候,学生应该同步上课进程,和老师端的颗粒保持一致,这需要老师在切颗粒的时候使用cim通知所有在课里边的学生切换颗粒。

我们可以看到上边当我使用cim发消息的时候是调用了一个接口,那在项目中我们使用的时候可以使用restTemplate 接入这个所谓的第三方平台cim的接口,实现发送消息的结果。

在这里插入图片描述

这里和绩效那里接入第三方平台xxljob是类似的,都是借助RestTemplateBuilder 实现响应接口的效果。

总结

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

http://www.lryc.cn/news/326845.html

相关文章:

  • C++第十三弹---内存管理(下)
  • Python爬虫学习完整版
  • JavaScript中的继承方式详解
  • Git基础(23):Git分支合并实战保姆式流程
  • 为什么有些前端一直用 div 当按钮,而不是用 button?
  • python实战之基础篇(一)
  • 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(补题)
  • 蓝桥杯刷题--python-32
  • 单例模式如何保证实例的唯一性
  • IntelliJ IDE 插件开发 | (七)PSI 入门及实战(实现 MyBatis 插件的跳转功能)
  • 【教程】iOS如何抓取HTTP和HTTPS数据包经验分享
  • 基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告
  • Spring Cloud Gateway Server MVC
  • 建立动态MGRE隧道的配置方法
  • 【MySQL】9. 内置函数
  • 芯片工程系列(5)2.5D 3D封装
  • KubeSphere简单介绍及安装使用
  • Java零基础-集合:Java 8新增的集合操作
  • C++经典面试题目(七)
  • 让手机平板成为AI开发利器:AidLux
  • Python物理学有限差分微分求解器和动画波形传播
  • 游戏本续航@控制中心的省电模式效果如何
  • centOS 安装MySQL8.0
  • 力扣 1.两数之和
  • Occupancy field----其他应用
  • Spring_MVC
  • 【动手学深度学习】深入浅出深度学习之线性神经网络
  • 2024/3/26 C++作业
  • LinkedList讲解指南
  • IP如何异地共享文件?