大家好,我是爱撸码的开源大叔!前两天开源小妹写了篇文章,反响还不错,就开始跟我炫耀了,那我必是不能落后的。
目前公司项目有许多需要发送即时消息的场景,之前一直采用的是传统的 websocket 连接,但是它存在掉线严重,不可重连,不支持高并发等缺点,在这样的背景下,急需一款成熟稳定的即时通讯系统。此时发现了一个优秀的开源框架-- CIM。CIM 是一套基于 Netty 框架的即时消息推送系统,目前 CIM 支持 websocket,android,ios,桌面应用,系统应用等多端接入,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB 应用以及后台系统之间的即时消息服务。 下面我来给大家介绍一下这个好用的开源框架吧。(写这篇文章还有一个目的:开源大叔不能输给开源小妹!)
第二步:直接启动项目 启动还是非常便捷的,没有繁琐的配置 可以看到 websocket 监听的端口为34566,这也是一会我们要使用的端口。
第三步:打开管理界面 界面地址为:http://127.0.0.1:8080/
因为我们还没有登录客户端,因此这里还没有在线用户,稍后我们登录客户端后再来查看。 至此 CIM 服务端已部署启动完成。
第二步:修改配置文件 web 端的配置文件主要在:cim.web.sdk.js
第三步:启动 web 客户端 启动很简单,直接打开 index.html 文件即可
效果如下
第四步:登录 CIM 我们任意输入一个用户名,点击“登录”即可
登录成功
我们再来看看服务端的在线用户列表,已经有我们登录的用户,点击“发送消息”按钮即可发送消息
至此,CIM 的快速入门已经完成。
可以看到,系统的整体流程并不复杂,还是很容易理解和上手的。
目前该框架已集成到我司的项目当中,而且已经稳定运行一段时间,很好的解决了之前消息推送的痛点,得到了其他同事的一致好评。
另外,了解该项目之前建议先了解下 Netty 的相关原理,能够方便你对于该项目源码的改编,以适用你自己项目的需求。我也将之前在公司给同事培训 Netty 的脑图整理了一下,需要的小伙伴可以去下载一下。(回复的关键字稍后会在文末贴出)
对于用户信息的持久化,可以使用Redis数据库,方便又高效。
最后,假如你当前也有即时消息推送相关的需求,这个完善的消息推送框架还是很值得你去考虑的。