• 💂 个人网站: IT知识小屋
  • 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

简介

WuKongIM是一款历经10(2015-2025)年迭代积累,沉淀出来的一款实用性强、高性能、通用的开源即时通讯IM系统,支持即时通讯,站内/系统消息,消息中台,物联网通讯,音视频信令,直播弹幕,客服系统,AI通讯,即时社区等场景下应用。

系统采用Go语言开发,拥有轻量级、高并发、易扩展的特性。服务端采用了自主实现的通信协议栈,支持二进制和JSON双协议格式,前端提供多平台选择(Android、iOS、Web、Flutter、小程序等),满足不同用户的个性化需求。系统采用了分布式架构 + 去中心化设计,实现了节点之间数据互备和故障自动转移,且支持集群快速自动可以扩容,保障系统高稳定性和高可靠性。


特点

  • 零依赖:不依赖任何第三方组件,部署简单,一条命令即可启动

  • 无上限:群成员无上限,轻松支持10万人群聊,消息可永久存储

  • 完全自研,资源消耗低:自研消息数据库,消息分区永久存储,自研二进制协议,支持自定义协议,心跳包只有1字节,省流量,省电量,传输更迅速

  • 安全:消息通道和消息内容全程加密,防中间人攻击和窜改消息内容,服务端数据实时备份,数据不丢失

  • 功能强劲:MAC 笔记本单机测试 16w 多/秒的消息(包含存储)吞吐量,频道支持万人同时订阅

  • 扩展性强:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等

  • 高可用:

    • 通过魔改raft分布式协议,实现了自动容灾,一台机器宕机,另一台机器自动接管,对外无感知。

    • 去中心化,无单点,无中心节点,每个节点都是独立且平等的,都可以提供服务。

    • 扩容方便,只需增加机器,不需要停机,不需要迁移数据,自动按策略分配数据。

  • 兼容性强:同时无差别支持 tcp,websocket

  • 易用性:采用频道订阅发布的设计理念,容易理解,容易上手。与Redis一样简单,Kafka一样高性能,MySQL一样可靠


适用场景

  • 即时通讯:群频道支持、个人频道支持、消息永久存储、离线消息推送支持、最近会话维护

  • 消息推送/站内消息:群频道支持、个人频道支持、离线消息推送支持

  • 客服系统:客服频道支持、消息支持投递给第三方服务器、第三方服务器可决定分配指定的订阅者成组投递(整体逻辑: 创建频道 -> 发送消息 -> 匹配客服 -> 客服加入频道 -> 开始聊天 )

  • 游戏聊天室:大群频道支持

  • 音视频信令服务器:支持临时指令消息投递

  • 直播弹幕:临时消息投递、临时订阅者支持(一个直播一个频道,用户进入直播就是用户订阅频道,用户退出直播就是用户取消订阅频道,直播结束就是频道销毁。)

  • 实时 AI 反馈:支持客户端发的消息推送给第三方服务器,第三方服务器反馈给 AI 后返回的结果再推送给客户端

  • 即时社区:社区频道支持、支持 topic 模式的消息投递

  • 物联网通讯:mqtt 协议支持、支持发布与订阅


构架

框架图

故障转移机制


功能特性

  • 支持自定义消息

  • 支持订阅/发布者模式

  • 支持个人/群聊/客服/社区资讯频道

  • 支持频道黑名单

  • 支持频道白名单

  • 支持消息永久漫游,换设备登录,消息不丢失

  • 支持在线状态,支持同账号多设备同时在线

  • 支持多设备消息实时同步

  • 支持用户最近会话列表服务端维护

  • 支持指令消息

  • 支持离线指令接口

  • 支持Webhook,轻松对接自己的业务系统

  • 支持Datasource,无缝对接自己的业务系统数据源

  • 支持Websocket连接

  • 支持TLS 1.3

  • 支持proxyproto协议

  • 支持JSON协议通讯

  • 支持Prometheus监控

  • 监控系统开发

  • 支持流式消息,类似chatgpt的结果输出流

  • 支持分布式

    • 去中心化设计,任意一个节点宕机,集群自动修复

    • 集群节点之间数据互备,任意一个节点损害,不影响数据完整性

    • 支持集群快速自动扩容


项目界面

后台管理系统

img_294

img_295

img_298

img_296

img_297

img_299

img_301

img_302

img_303

img_300

img_304

img_305

img_307

IM系统界面

img_308


开源地址&使用手册

点击下方的【IT学习日记】回复【资源】领取!

如果这篇文章对您有帮助,请一定帮我点个 “关注”“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后

1000+优质开源项目更新进度:244/1000。如需更多类型优质项目推荐,请在文章后留言。

在这里插入图片描述

更多推荐