推荐:一款Java开源的Springboot 即时通讯 IM 聊天系统

news/2024/7/7 20:35:45

点击上方“方志朋”,选择“设为星标”

回复”666“获取新整理的面试文章

# 开篇

电商平台最不能缺的就是即时通讯,例如通知类下发,客服聊天等。今天,就来给大家分享一个开源的即时通讯系统。如对文章不感兴趣可直接跳至文章末尾,有获取源码链接的方法。

但文章内容是需要你简单的过一遍的,相信你能get到不少骚操作。

# 项目简介

该项目是一套基于mina或netty框架下的推送系统,或许有一些企业有着自己一套即时通讯系统的需求,那么CIM为您提供了一个解决方案,目前CIM支持websocket,android,ios,桌面应用,系统应用等多端接入支持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用以及后台系统之间的即时消服务。


# 项目架构

即时通讯聊天的架构都相对较简单,一般都是服务端+客户端,能实现用户A到用户B的聊天;含金量在于看看支不支持集群扩展。

聊天架构


# 项目主要模块

项目分为,服务器端,和客户端,服务端是netty 整合websocket,客户端形式多种多样,都是调用服务端的,本篇就不重点介绍了。

# 目录说明

  • cim-use-examples是各个客户端使用示例

  • cim-client-sdk 是各个客户端的SDK源码

  • cim-server-sdk 是服务端SDK源码,分为 mina和netty 两个版本,二者任选其一

  • cim-boot-server是springboot服务端工程源码,使用Idea工具开发

其中所有的sdk均为IntelliJ IDEA工程,Maven打包成jar导出引入到对应的客户端或服务端工程。

# 功能预览

1、控制台页面http://127.0.0.1:8080

2、Android客户端 

3、Web客户端 

# 结语

此套开源的即时通讯系统,可以改成推送的,也可以改成聊天的,后端改改可以拿来直接使用,重点不在前端,但android 和ios还有web都支持,自己看代码中的例子吧,值不值得收藏,自己先看看文章,觉得可以收藏一下,慢慢看。

热门内容:选型必看:RabbitMQ 七战 Kafka,差异立现为什么阿里规定需要在事务注解@Transactional中指定rollbackFor?
一套简单通用的Java后台管理系统,拿来即用,非常方便(附项目地址)半吊子架构师,一来就想干掉RabbitMQ ...
前、后端分离权限控制设计和实现思路最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ♡

http://lihuaxi.xjx100.cn/news/272441.html

相关文章

win7x64注册表显卡渲染速度_Geek3D GpuTest GUI(显卡测试软件)下载-Geek3D GpuTest GUI(显卡测试软件)免费版下载v0.7.0...

Geek3D GpuTest GUI 能够对显卡的GPU、OpenGL进行基准压力的测试,而且测试完成也相当的快捷,功能强大,体积小巧,目前支持在windows 64位系统上进行测试,帮助用户检测显卡的型号,让用户更好的使用显卡并发挥…

从零开始一起学习SLAM | 三维空间刚体的旋转

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达刚体,顾名思义,是指本身不会在运动过程中产生形变的物体,如相机的运动就是刚体运动,运动过程中同一个向量的长度和夹角都不…

Android线程之主线程向子线程发送消息

和大家一起探讨Android线程已经有些日子了,谈的最多的就是如何把子线程中的数据发送给主线程进行处理,进行UI界面的更新,为什么要这样,请查阅之前的随笔。本篇我们就来讨论一下关于主线程向子线程如何发送数据,这个用的…

破解Win2008口令-ERD6.0

我们在日常使用计算机的过程中,大多都经历过由于忘记口令从而无法进入系统的遭遇。遇到这种问题该如何处理呢?很多朋友一定想到了形形的口令破解工具,这些工具中名气最大的就是ERD Commander Boot CD。 ERD Commander Boot CD是一张可以启动操…

Python基础实战之函数的参数讲解(三)

●参数可以是任意类型。 ●比如可以是列表。 library[‘python精通’,‘MySQL’,‘数据分析’,‘人工智能’] #形参 def add_book(bookname): library.append(bookname) print(‘图书添加成功!’) pass def show_book(books): for book in books: print(bo…

训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……...

作者 | Lionbridge AI译者 | 天道酬勤 责编 | 徐威龙封图| CSDN│下载于视觉中国出品 | AI科技大本营(ID:rgznai100)在机器学习领域,训练数据准备是最重要且最耗时的任务之一。实际上,许多数据科学家声称数据科学的很…

junit配合catubuter统计单元测试的代码覆盖率

1、视频参考孔浩老师ant视频笔记 对应的build-junit.xml脚步如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project default"coverage-report"><property name"src.dir" location"src">…

MyBatis动态SQL(认真看看, 以后写SQL就爽多了)

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章来源&#xff1a;cnblogs.com/homejim/p/9909657.htmlmybatis最新源码和注释MyBatis 令人喜欢的一大特性就是动态 SQL。在使用 JDBC 的过程中&#xff0c; 根据条件进行 SQL 的拼接是很麻烦且很…