CIM一套完善的消息推送框架
一套基于Netty的完善的消息推送框架
文章目录
- 一套基于Netty的完善的消息推送框架
- 一、背景
- 二、快速入门
- 三、大致流程
- 四、框架优势
- 五、总结
一、背景
公司项目有许多需要发送即时消息的场景,之前一直采用的是传统的websocket连接,它会存在掉线严重,不可重连,不支持高并发等缺点,在这样的背景下,急需一款成熟稳定的即时通讯系统。此时发现了一个优秀的开源框架–CIM。CIM是一套基于Netty框架下的推送系统,目前CIM支持websocket,android,ios,桌面应用,系统应用等多端接入支持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用以及后台系统之间的即时消服务。
二、快速入门
下载源代码,代码地址为:https://gitee.com/farsunset/cim.git,下载完成之后直接使用maven编译即可。
源代码目录结构如下:
无需进行数据库的初始化,若想要将用户信息保存持久化可以将CIMSession用户连接信息保存到Redis或者MySQL中,本次示例不做数据库相关操作。
部署CIM服务端项目
第一步:修改配置文件
由于无需连接数据库,因此没有什么需要修改的地方
第二步:直接启动项目
启动还是非常便捷的,没有繁琐的配置
可以看到websocket监听的端口为34566,这也是一会我们要使用的端口
第三步:打开管理界面
界面地址为:http://127.0.0.1:8080/
因为我们还没有登录客户端,因此这里还没有在线用户,稍后我们登录客户端后再来查看。
至此CIM服务端已部署启动完成。
CIM的web客户端启动
第一步:找到客户端实例项目
我们本次主要演示web客户端通过websocket的连接
第二步:修改配置文件
web端的配置文件主要在:cim.web.sdk.js
第三步:启动web客户端
启动很简单,直接打开index.html文件即可
效果如下
第四步:登录CIM
我们任意输入一个用户名,点击“登录”即可
登录成功
我们再来看看服务端的在线用户列表,已经有我们登录的用户,点击“发送消息”按钮即可发送消息
发送消息
至此,CIM的快速入门已经完成。
三、大致流程
- 首先启动服务器端项目,此时也相当于启动了websocket的服务端,等待用户连接;
- 打开web客户端页面,登录用户,连接websocket;
- 打开控制台页面,选择已登录的用户,发送消息即可。
可以看到,系统的整体流程并不复杂,还是很容易理解和上手的。
四、框架优势
- 该框架是基于主流的Netty框架(Netty的强大已无需多言了),能够保证稳定高效的连接,而且断线重连机制支持的也很好。
- 易于扩展和使用,并完美支持集群部署支持海量链接,目前支持websocket,android,ios,桌面应用,系统应用等多端接入持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用即时消服务。
- 用时7年 基于CIM的项目已经运行在全国各个地方,包括上市公司,各地政务系统,警务系统等服务于上百家客户。
- 该框架是基于当前主流的springboot,并且全面拥抱protobuf,替换json序列化方式,更加高效。
- 从我自身使用体验来讲,该框架已经很好的解决了我司项目之前掉线严重,不可重连,不支持高并发等缺点。
五、总结
目前该框架已集成到我司的项目当中,而且已经稳定运行一段时间,很好的解决了之前消息推送的痛点,得到了其他同事的一致好评,而且基于该框架研发的功能也正在准备申请专利,足以说明该框架的稳定与强大。
另外,了解该项目之前建议先了解下Netty的相关原理,能够方便你对于该项目源码的改编,以适用你自己项目的需求。
对于用户信息的持久化,可以使用Redis数据库,方便又高效。
利,足以说明该框架的稳定与强大。
另外,了解该项目之前建议先了解下Netty的相关原理,能够方便你对于该项目源码的改编,以适用你自己项目的需求。
对于用户信息的持久化,可以使用Redis数据库,方便又高效。
最后,假如你当前也有即时消息推送相关的需求,这个完善的消息推送框架还是很值得你去考虑的,详细信息请参考官方地址:https://gitee.com/farsunset/cim
CIM一套完善的消息推送框架相关推荐
- Android 消息推送框架详解
消息推送的概念 消息推送,是指绕过手机运营商,通过TCP/IP网络传输的方式,向应用程序发送数据,这些数据包括简单的文本,图片,或者其他多媒体数据. 与手机运营商发送短信的方式相比,消息推送普及性和可 ...
- php实现Web消息推送框架
文章来源:http://www.workerman.net/web-sender web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接 ...
- 友盟小米收不到推送消息_一个轻量级、可插拔的Android消息推送框架。一键集成推送(极光推送、友盟推送、华为、小米推送等)...
XPush 一个轻量级.可插拔的Android消息推送框架.一键集成推送(极光推送.友盟推送.华为.小米推送等),提供有效的保活机制,支持推送的拓展,充分解耦推送和业务逻辑,解放你的双手! 在提iss ...
- 即时通讯开发如何构建一套移动端消息推送系统
消息推送作为移动端 APP 运营中的一项关键技术,已经被越来越广泛的运用. 本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢 ...
- WebSocket与消息推送
目录 一.Socket简介 二.WebSocket简介与消息推送 三.WebSocket客户端 四.WebSocket服务器端 五.测试运行 六.小结与消息推送框架 6.1.开源Java消息推送框架 ...
- Bark 使用指南:如何自建 iOS 消息推送服务
文章首发于个人公号:「阿拉平平」 之前我写过一个脚本,校验 SSL 证书是否过期并定时将结果以邮件的形式告知.事实上,这些消息并不是那么重要,发送邮件未免有些「重」了,将结果直接推送到自己的手机上可能 ...
- java xmpp消息推送_基于XMPP协议(openfire服务器)的消息推送实现
最近好像有不少朋友关注Android客户端消息推送的实现,我在之前的项目中用到过Java PC客户端消息推送,从原理讲上应该是一致的,在这里分享一下个人的心得. 消息推送实现原理 这里的消息推送,通常 ...
- 如何构建一套高可用的 APP 消息推送平台
转载自 如何构建一套高可用的 APP 消息推送平台 消息推送作为移动 APP 运营中的一项关键技术,已经被越来越广泛的运用.本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行 ...
- 如何构建一套高可用的移动消息推送平台?
消息推送作为移动 APP 运营中的一项关键技术,已经被越来越广泛的运用.本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢失. ...
- 消息推送生命周期_一套完整的APP推送体系方案|附思维导图
写这篇文章的初衷是前几天在脉脉上看到一个问题:线上app push故障,该不该给用户发送补救推送信息? 联想到自己当初作为实习菜鸟也犯过类似的推送事故,好在补救处理尚可,最终结果不错.这次仔细看了问题 ...
最新文章
- 经验分享:微信小程序外包接单常见问题及流程
- 制作keil5的pack
- c# 读取写入excel单元格基本操作
- 简单入门Javascript正则表达式
- nginx指定配置文件启动_【第1717期】Nginx入门指南
- UIView的一些基本方法 init、loadView、viewDidLoad、viewDidUnload、dealloc
- wp7 --缓动动画
- 自定义View/ViewGroup的步骤和实现
- python数据包发送给云平台_用python发送短消息(基于阿里云平台)
- 基于JAVA的KTV交易_Java写的KTV管理系统(Swing界面,含源码)
- python最简单的画图代码
- mysql数据库约束和默认
- MySQL5.0安装图文教程
- 浅谈toB交付质量体系建设
- 学习halcon之颜色识别
- postman设置域名_Postman中文文档——设置
- 不谋全局者 , 不足以谋一域 : 不谋万世者 , 不足以谋一时
- 怎么改变png图片的大小kb?怎么更改png图片的大小?
- 网狐荣耀,android编译
- [AHOI2022]山河重整