大家好,我是Echa。
即时通讯(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。也是Internet上最为流行的通讯方式之一,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。
即时通信IM核心应用场景分别有:
- 社交沟通:IM可以支持单聊/群聊中的文字、表情、图片、短语音、短视频等多种消息类型,有效提升用户活跃度。
- 直播互动:可支持弹幕、 送礼和点赞等多消息类型,轻松打造良好的直播聊天互动体验;提供弹幕内容审核能力,保证您的直播免受不雅信息干扰。能够为百万级的直播保驾护航。
- 电商带货:IM 与商业直播相结合,通过提供点赞、询价、购物券等特定消息类型,帮助直播客户实现流量变现。
- 互动游戏:很多游戏的游戏内社交是通过IM实现的,例如游戏内常见的组队聊天、世界聊天等等。
- 在线教育:IM 为可提供在线课堂,文本消息,画笔轨迹等能力,轻松实现教师学生沟通、画笔轨迹保存、大班课与小班课教学等教学场景。
- 在线客服:可满足商家与用户多场景沟通的需要,为客户提供专属客服服务,提升服务效率,通过与智能机器人结合,可有效降低人力成本,沉淀客户价值。
- 企业通信:IM 为企业客户提供覆盖桌面与移动端的完整解决方案,满足设备无缝切换的需求,提高企业内外沟通效率。
- 在线会议:IM支持10万人大群,对于超大规模的万人级企业大会也能够满足需求。
- 商业沟通:在日常的打车、配送等服务中,都会涉及到服务双方的简单沟通。
IM系统看似简单(没错,很多不懂技术的老板认为开发个和微信也就是几万块钱的事... ),实则是众多技术的应用合体,包括网络编程、移动开发、后端开发、高并发、高可用、高安全等技术范畴,再加上多端使用不同的编程语言,想要凑齐一个典型的IM产品技术栈那也不是个容易事。小编直接上一个完整的即时通讯IM架构,就一目了然了。但是也不要灰心,有小编在,让大家少走弯路,一定让大家把开发系统变简单化。
借此机会,今天小编给大家推荐21个开源免费的客服聊天、IM即时通讯系统,可以私有化,不用担心数据丢失和泄露。希望对粉丝们有所帮助。周末又来到,开心最重要;工作先让道,压力都赶跑;聚会或旅游,娱乐不能少;三五好友陪,轻松乐逍遥;愿大家心情好,快乐把你罩!。
全文大纲
- j-im - 用JAVA语言开发的轻量、高性能、单机支持几十万至百万在线用户IM系统
- cim - 是一套完善的消息推送框架
- V-IM - 基于JS的超轻量级聊天软件
- im-server - 是一套全平台、功能齐全、二开友好的即时通讯和实时音视频解决方案
- MobileIMSDK - 原创移动端IM通信层框架,轻量级、高度提炼,历经8年、久经考验。
- oim-fx - 是一套即时通讯的聊天系统
- im-uniapp - 聊天IM,精仿微信
- cloudtalk - 专注于 企业云部署(SaaS) 的即时通讯IM系统
- has-chat - 基于vue3+socket.io的聊天应用
- xyTalk-pc - 企业协作通讯系统
- uni-nvue-chat -即时通讯App,基于workerman和unicloud,支持APP,微信小程序,H5
- webim - 网页即时通讯系统
- im - 非残端,达到单机10W+的可用即时通讯工具
- oim-server - 即时通讯方案
- WuKongIM - 8年积累,沉淀出来的高性能通用通讯服务
- thelounge - 一个新颖的、高度通用的基于Web的IRC客户端,提供了一个响应式的用户界面
- vue-chat - 基于websocket实现基于json的文本协议实现即时通信
- box-im - 是一个仿微信的聊天工具
- Chatwoot - 是一个开源客户服务套件
- vue-mchat - 一款基于vue与elementu-ui开发的聊天室组件库
- IMChat -golang+vue+Mui实现分布式即时通讯系统
j-im - 用JAVA语言开发的轻量、高性能、单机支持几十万至百万在线用户IM系统
Gitee: https://gitee.com/xchao/j-im
介绍
J-IM 是用JAVA语言开发的轻量、高性能、单机支持几十万至百万在线用户IM,主要目标降低即时通讯门槛,快速打造低成本接入在线IM系统,通过极简洁的消息格式就可以实现多端不同协议间的消息发送如内置(Http、Websocket、Tcp自定义IM协议)等,并提供通过http协议的api接口进行消息发送无需关心接收端属于什么协议,一个消息格式搞定一切。
特点
- 高性能(单机可支持几十万至百万人同时在线)
- 轻量、可扩展性极强
- 支持集群多机部署
- 支持SSL/TLS加密传输
- 消息格式极其简洁(JSON)
- 一端口支持可插拔多种协议(Socket自定义IM协议、Websocket、Http),各协议可分别独立部署。
- 内置消息持久化(离线、离史、漫游),保证消息可靠性,高性能存储
- 各种丰富的API接口。
- 零成本部署,一键启动。
系统截图
cim - 是一套完善的消息推送框架
Gitee:https://gitee.com/farsunset/cim
介绍
CIM是一套完善的消息推送框架,可应用于信令推送,即时聊天,移动设备指令推送等领域。开发者可沉浸于业务开发,不用关心消息通道长连接、消息编解码协议等繁杂处理。
CIM采用业内主流开源技术构建,易于扩展和使用,并完美支持集群部署支持海量链接,目前支持websocket,android,ios,桌面应用,系统应用等多端接入持,可应用于移动应用,物联网,智能家居,嵌入式开发,桌面应用,WEB应用即时消服务。
系统截图
V-IM - 基于JS的超轻量级聊天软件
Gitee:https://gitee.com/alyouge/V-IM
介绍
V-IM(中文名:乐聊)基于JS的超轻量级聊天软件。前端:vue3.0、element plus、electron、TypeScript 实现的 PC&Web版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持web网页聊天实现。 服务端: springboot、tio、oauth2.0等技术。界面:高仿微信。
系统截图
im-server - 是一套全平台、功能齐全、二开友好的即时通讯和实时音视频解决方案
Github:https://github.com/wildfirechat/im-server
介绍
野火IM(wildfirechat)是一套全平台、功能齐全、二开友好的即时通讯和实时音视频解决方案
功能特性
- 极致地硬件利用率,IM服务最低128M内存即可运行,上不封顶。
- 协议先进,采用MQTT+Protobuf组合,流量和性能极致优化。
- 性能强大,专业版IM服务支持百万在线和集群部署,业内顶尖性能水平,详情参考野火性能报告。
- 部署运维简单,依赖服务少,稍加配置一键启动。
- 安全加密。网络连接AES加密。客户端数据库SqlCipher加密。安全无小事。
- 全平台客户端,支持Android、iOS、Web、小程序、UniApp、Flutter、Windows、Mac OS、Linux等所有常见平台。
- 四端同时在线(移动端,pc端,web端和小程序端),数据和状态多端完美同步。
- 支持国产化。支持国产化操作系统、国产化芯片和国产操作系统。支持国密加密。
- 客户端使用微信mars连接库,野火IM可能是最适应中国网络国情的即时通讯服务。
- 支持加速点加速,即可用于全球应用,也可用于政企内外双网复杂的网络环境。
- 支持阅读回执和在线状态功能,适用于办公环境。
- 音视频多种解决方案,丰俭由人,可自由选择。
- 高级音视频功能强大,支持9人以上的群组视频通话,支持1080P视频,支持会议模式,支持百人以上会议,支持服务器端录制。
- 全私有部署,可不依赖任何第三方服务,完全内网部署。
- 功能齐全,涵盖所有常见即时通讯功能。另外具有强大的可扩展能力。代码开源率高,二次开发简单。
- 结构设计合理,客户端分功能库、UI库和应用三层。应用成熟完善,开箱即用,也可把SDK嵌入其它应用。
- 拥有应用开放平台,可以开发和创建自建应用,扩展您的工作台。
- API丰富,方便与其它服务系统的对接。
- 拥有机器人和公众号功能,免费的频道(公众号)管理后台。
- 超级群组功能,可以支持万人大群。
- 社区版IM服务和移动端免费商用,可以免费构建出完备的移动互联网应用。
- 收费项目非常便宜,野火独有的试用模式,可以先部署到客户环境试用6个月,试用满意后再购买,避免上当受骗。
- 技术支持专业和高效,核心研发人员及时处理issue和论坛回复。
系统截图
MobileIMSDK - 原创移动端IM通信层框架,轻量级、高度提炼,历经8年、久经考验。
Github:https://github.com/JackJiang2011/MobileIMSDK
介绍
原创移动端IM通信层框架,轻量级、高度提炼,历经8年、久经考验。同时支持UDP+TCP+WebSocket三种协议,支持iOS、Android、Java、H5、微信小程序、Uniapp,服务端基于Netty。
MobileIMSDK是一套专为移动端开发的原创IM通信层框架:
- 历经10年、久经考验;
- 超轻量级、高度提炼,lib包50KB以内;
- 精心封装,一套API优雅支持UDP 、TCP 、WebSocket 三种协议(可能是全网唯一开源的);
- 客户端支持iOS、Android、标准Java、H5(暂未开源)、小程序(暂未开源)、Uniapp(暂未开源);
- 服务端基于Netty,性能卓越、易于扩展;
- 可与姊妹共程 MobileIMSDK-Web 无缝互通实现网页端聊天或推送等;
- 可应用于跨设备、跨网络的聊天APP、企业OA、消息推送等各种场景。
架构图
技术特征
- 久经考验:历经8年,从Andriod 2.3、iOS 5.0 时代持续升级至今(绝不烂尾);
- 超轻量级:高度提炼,lib包50KB以内;
- 多种协议:可能是全网唯一开源可一套API同时支持UDP、TCP、WebSocket三种协议的同类框架 ;
- 多种网络:精心优化的TCP、UDP、WebSocket协议实现,可应用于卫星网、移动网、嵌入式物联网等场景;
- 多端覆盖:客户端支持iOS、Android、标准Java、H5、微信小程序、Uniap;
- 高效费比:独有的UDP协议实现,无连接特性,同等条件下可实现更高的网络负载和吞吐能力;
- 消息走向:支持即时通讯技术中消息的所有可能走向,共3种(即C2C、C2S、S2C);
- 粘包半包:优雅解决各端的TCP经典粘包和半包问题,底层封装,应用层完全无感知;
- QoS机制:完善的消息送达保证机制(自动重传、消息去重、状态反馈等),不漏过每一条消息;
- 健壮可靠:实践表明,非常适于在高延迟、跨洲际、不同网络制式环境中稳定、可靠地运行;
- 断网恢复:拥有网络状况自动检测、断网自动治愈的能力;
- 原创算法:核心算法和实现均为原创,保证了持续改进和提升的空间;
- 多种模式:预设多种实时灵敏度模式,可根据不同场景控制即时性、流量和客户端电量消耗;
- 数据压缩:自有协议实现,未来可自主定制数据压缩,灵活控制客户端的流量、服务端网络吞吐;
- 高度封装:高度封装的API接口,保证了调用的简易性,也使得可应用于更多的应用场景;
- Web支持:可与姊妹共程 MobileIMSDK-Web 无缝互通实现网页端聊天或推送等;
- 扩展性好:服务端基于Netty,继承了Netty的优秀高可扩展性;
- 性能优异:服务端继承了Netty高性能、高吞吐特性,适用于高性能服务端场景。
系统截图
oim-fx - 是一套即时通讯的聊天系统
Gitee:https://gitee.com/oimchat/oim-fx
介绍
OIM是一套即时通讯的聊天系统,在这里献给大家,一方面希望能够帮助对即时通讯有兴趣研究的朋友,希望我们能够共同进步,另一个就是希望能够帮助到需要即时通讯系统的朋友或者企业,可以直接使用或者二次开发。可以用于公司内网、外网通讯、客服系统等,聊天系统。OIM项目可用于任何商业、个人作品中并且希望能够保留作者信息。
系统截图
im-uniapp - 聊天IM,精仿微信
Gitee:https://gitee.com/lakaola/im-uniapp
介绍
聊天IM,精仿微信,支持单聊、群聊、朋友圈、摇一摇、附近的人、收藏、扫码、机器人、文字、图片、名片、实时音视频通话等功能
- 一直以来都有一个社交梦,想做一款IM应用,看了很多优秀的开源项目,但是没有合适自己的。于是利用休息时间自己写了这么一套系统。
- 项目第一个版本历时2个月,前端使用uniapp,后端使用SpringBoot。
- 页面设计后期会出独立UI。
- 手机端使用uniapp实现,目前仅支持安卓端、iOS端和H5端,后期会继续适配小程序端、桌面端(windows、mac)和web端。
技术使用
- 推送:uniPush + websocket
- 资源:阿里OSS(图片、声音、视频、文件等)
- 音视频:TRTC
- 地图:高德地图
- 短信:阿里云短信
- 后端:Hutool、MyBatis-Plus、shiro、sharding-jdbc、接口版本控制等
- 前端:uniapp(Vue3)
系统截图
cloudtalk - 专注于 企业云部署(SaaS) 的即时通讯IM系统
Gitee: https://gitee.com/pwsns/cloudtalk
介绍
【全开源】专注于 企业云部署(SaaS) 的即时通讯IM系统,群集布置效果优化,业务模块与底层分离,能快速与自已现有系统对接,可用于企业OA,内部办公IM,App聊天沟通等业务场景。支持音,视频通话 支持 andoird ios mac windows h5/小程序 HttpApi 是全网唯一支持全平台部署的互联网即时通讯系统。
系统截图
has-chat - 基于vue3+socket.io的聊天应用
Gitee:https://gitee.com/howcode/has-chat
介绍
自我做的客服聊天以来,让我做一套聊天应用的呼声越来越多,加上那套客服聊天由于没有组件化、UI 设计等问题,也让我一直心有遗憾做的不够完美,于是利用空余时间做了一套相对完整的聊天应用。HasChat 是一套使用全新技术完成的通讯聊天网页。
- PC 网页版前端:Vue3 + Vite + TypeScript + Pinia + Naive UI + Socket.io
- 移动版前端:uni-app + Socket.io
- 后端:Express.js
系统截图
xyTalk-pc - 企业协作通讯系统
Gitee:https://gitee.com//xyTalk-pc
介绍
企业IM即时通讯定制平台,百万级高并发、高性能、可扩展、安全、高交互体验的企业通信和协作im平台。包含通讯服务、仿微信客户端(PC、Android、iOS)、Web门户(用于集成企业应用)、WebAPI。
系统截图
uni-nvue-chat -即时通讯App,基于workerman和unicloud,支持APP,微信小程序,H5
Gitee:https://gitee.com/wzJun1/uni-nvue-chat
介绍
即时通讯App,基于workerman和unicloud,支持APP,微信小程序,H5
系统截图
webim - 网页即时通讯系统
Gitee:https://gitee.com/kangchang/webim
介绍
webim —— 网页即时通讯系统详细注释教学版
主要技术
- 网页即时通讯系统,登陆后所有操作无需刷新(收/发/离线)。
- 采用mqtt,可以利用协议本身优势,省去群组发送消息和接收消息的开发,多端登录接收消息的开发,本质只是往订阅的主题中推送消息。
- 采用jfinal,前期写起来简单又快,但是后期扩展起来非常难,各种不支持,各种不能集成,改为springboot很好改,已经有很多同学改成功了
- 但是本项目主要是用来理解即时通讯的思路和原理,扩展不是重点。
- 通讯协议使用的是MQTT,需要自己架设MQ服务器(哪公司的MQ都可以,支持MQTT协议就行),
- 至于为什么要用这个协议,主要是因为订阅/发布模式,并且各种系统和开发语言的客户端sdk都有,个人认为订阅/发布模式是目前用来开发即时通讯最快最简单的通讯协议,
- 强烈建议自己开发IM的同学使用此协议(难点是topic的逻辑设计)。
- 在线状态的处理也是巧妙的利用的mqtt协议
- 消息的获取是推送还是拉取,都行合适就行。技术虽然简单但是功能实用,有漏洞希望理解。
系统截图
im - 非残端,达到单机10W+的可用即时通讯工具
Gitee:https://gitee.com/LiLongLong719/im
介绍
非残端,达到单机10W+的可用即时通讯工具
技术栈
核心Tio,包括http和socket都是tio.没有引入spring系列,所以大部分的内容都需要自己封装,好处是启动快,体积小。 弊端就是方方面面都需要自己考虑。
从登录开始所有的交互全部使用socket io,除minio分片上传使用了http外,目前没有其他使用http的地方。
文件存储使用了minio. 一个标准的数据存储,很香
缓存和数据存储使用mangodb, 同时解决缓存和数据存储的问题(据说挺快的,没有做大量尝试)
oim-server - 即时通讯方案
Gitee:https://gitee.com/oimchat/oim-server
介绍
OIM聊天系统的服务端,Java语言开发,Spring Cloud 微服务架构,只要机器够,用户不是问题。
不要被客户端迷惑了,真正值钱的是服务端, OIM服务是采用Java语言开发,基于spring cloud微服务体系开发的一套即时通讯服务端。 从单机到微服务都提供了可部署方案,并且单机、微服务都可以平滑切换,客户端可以毫无感知服务变更
特点
oim-server 可以让你像spring mvc一样开发即时通讯接口,对于有web后台开发经验,没有即时通讯服务端经验开发者,可以 轻松转换,并且兼容spring web接口。
系统截图
WuKongIM - 8年积累,沉淀出来的高性能通用通讯服务
Gitee:https://gitee.com/WuKongDev/WuKongIM
介绍
8年积累,沉淀出来的高性能通用通讯服务,支持即时通讯(聊天软件)(IM)(Chat),消息推送,消息中台,物联网通讯,音视频信令,直播弹幕,客服系统,AI通讯,即时社区等场景。
特点
- 完全自研:自研消息数据库,消息分区永久存储,自研二进制协议(支持自定义),重写Go底层网络库,无缝支持TCP和websocket。
- 性能强劲:单机支持百万用户同时在线,单机16w/秒消息(包括DB操作)吞吐量,一个频道支持万人同时订阅。
- 零依赖:没有依赖任何第三方组件,部署简单,一条命令即可启动
- 安全:消息通道和消息内容全程加密,防中间人攻击和篡改消息内容。
- 扩展性强:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等
功能特性
- 支持自定义消息
- 支持订阅/发布者模式
- 支持个人/群聊/客服/社区资讯频道
- 支持频道黑名单
- 支持频道白名单
- 支持消息永久漫游,换设备登录,消息不丢失
- 支持在线状态,支持同账号多设备同时在线
- 支持多设备消息实时同步
- 支持用户最近会话列表服务端维护
- 支持指令消息
- 支持离线指令接口
- 支持Webhook,轻松对接自己的业务系统
- 支持Datasource,无缝对接自己的业务系统数据源
- 支持Websocket连接
- 支持TLS 1.3
- 支持Prometheus监控
- 监控系统开发
- 支持Windows系统(仅开发用)
- 支持流式消息,类似chatgpt的结果输出流
- 支持分布式
架构图
系统截图
thelounge - 一个新颖的、高度通用的基于Web的IRC客户端,提供了一个响应式的用户界面
Github:https://github.com/thelounge/thelounge
介绍
The Lounge是一个新颖的、高度通用的基于Web的IRC客户端,提供了一个响应式的用户界面。它的设计支持跨平台,可以在各种设备和操作系统上无缝使用。用户可以自由设置和管理自己的IRC服务,整个通讯和用户体验完全自主可控。
功能特征
- IRC新颖功能:推送通知、链接预览、新消息标记等将IRC带入了世纪。
- 连接保持功能:在您脱机时保持与IRC服务器的连接。
- 跨平台:无论您使用什么操作系统,它都可以在Node.js运行的任何地方工作。
- 响应界面:客户端可在每台台式机、智能手机和平板电脑上顺利运行。
- 同步体验:无论使用何种设备,始终从中断的地方继续。
系统截图
vue-chat - 基于websocket实现基于json的文本协议实现即时通信
Github:https://github.com/fsharechat
介绍
即时聊天系统web客户端,使用vue框架,基于websocket实现基于json的文本协议实现即时通信。消息与android客户端同步,支持文字,图片发送,支持视频相关消息显示。支持与android端互通音视频通话。
系统截图
box-im - 是一个仿微信的聊天工具
Gitee:https://gitee.com/bluexsx/box-im
介绍
盒子IM是一个仿微信的聊天工具。后端采用springboot+netty实现,web端使用vue,移动端使用uniapp,支持私聊、群聊、离线消息、发送图片、文件、语音、emoji表情、视频聊天等功能。
功能介绍
- 盒子IM是一个仿微信实现的网页版聊天软件,目前完全开源。
- 支持私聊、群聊、离线消息、发送语音、图片、文件、emoji表情等功能
- 支持视频聊天(基于webrtc实现,需要ssl证书)
- 后端采用springboot+netty实现,网页端使用vue,移动端使用uniapp
- 服务器支持集群化部署,每个im-server仅处理自身连接用户的消息
消息推送方案
系统截图
Chatwoot - 是一个开源客户服务套件
Github:https://github.com/chatwoot/chatwoot
介绍
Chatwoot是一个开源客户服务套件。Chatwoot支持查看和管理客户数据,与客户沟通,并根据客户资料激活他们。
功能特征:
- 支持多种对话渠道:网站(SDK)、SMS、API、Email等。
- 支持多个社交平台:FaceBook、Instagram、Twitter、Telegram、WhatsApp、Line等。
- CRM:保存您所有的客户信息就在Chatwoot内,使用联系人笔记记录电子邮件,电话或会议记录。
- 自定义属性:定义自定义属性属性以存储有关联系人或对话的信息,并扩展产品以匹配您的工作流。
- 共享多品牌收件箱:使用共享收件箱管理多个品牌或页面。
- 私人笔记:使用@mentions和私人笔记在内部交流对话。
- 回复模板(已保存回复):通过添加已保存的常见问题回复来提高回复率。
- 对话标签:使用对话标签创建自定义工作流。
- 自动分配:Chatwoot根据可用性和负载智能地将工单分配给有权访问收件箱的座席。
- 会话连续性:如果用户通过聊天小部件提供了电子邮件地址,Chatwoot将以代理名称向客户发送电子邮件,以便用户可以通过电子邮件继续对话。
- 多语言支持:支持10多种语言。
- 强大的API Webhooks:使用Chatwoot的Webhooks和API扩展软件的功能。
- 集成:Chatwoot现在已经与Slack进行了原生集成。在Slack中管理您的对话,而无需登录仪表板。
vue-mchat - 一款基于vue与elementu-ui开发的聊天室组件库
Gitee:https://gitee.com/july-meteor/vue-mchat
介绍
这是一款基于vue与elementu-ui开发的聊天室组件库,在UI上模仿了TIM及微信。在提供基础封装的同时,最大程度的增加扩展性。
系统截图
IMChat -golang+vue+Mui实现分布式即时通讯系统
Gitee:https://gitee.com/zhangyafeii/IMChat
介绍
golang+vue+Mui实现分布式即时通讯系统,可以在此基础上进行无无限扩展
系统架构
系统截图
最后
一行代码,可能会创造出下一个让人惊叹的产品;
一个创新,可能会开启一个全新的科技时代;
一份初心,可能会影响到无数人的生活;
无论是在大公司工作,还是在小团队奋斗;
无论是资深的程序员,还是刚刚入行的新手;
每个人的代码,都有力量改变世界。
创作不易,喜欢的老铁们加个关注,点个赞,打个赏,后面会不定期更新干货和技术相关的资讯,速速收藏,谢谢!你们的一个小小举动就是对小编的认可,更是创作的动力。
创作文章的初心是:沉淀、分享和利他。既想写给现在的你,也想贪心写给 10 年、20 年后的工程师们,现在的你站在浪潮之巅,面对魔幻的互联网世界,很容易把一条河流看成整片大海。未来的读者已经知道了这段技术的发展历史,但难免会忽略一些细节。如果未来的工程师们真的创造出了时间旅行机器,可以让你回到现在。那么小编的创作就是你和当年工程师们的接头暗号,你能感知到他们在这个时代的键盘上留下的余温。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/goland/1451.html