36 Star 442 Fork 122

WuKongDev / WuKongIM

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_CN.md 8.51 KB
一键复制 编辑 原始数据 按行查看 历史
tangtaoit 提交于 2024-03-26 12:47 . docs: update README

悟空IM(让信息传递更简单)

9年积累,沉淀出来的高性能通用通讯服务,支持即时通讯,站内/系统消息,消息中台,物联网通讯,音视频信令,直播弹幕,客服系统,AI通讯,即时社区等场景。

(注意:此项目是一个通用的底层即时通讯服务,上层需要对接自己的具体业务系统(通过webhook和datasource机制非常轻松与自己业务系统对接),此项目核心点主要维护大量客户端的长连接,并根据第三方业务系统配置的投递消息规则进行消息投递。)

本项目需要在go1.20.0或以上环境编译

English

  • 官网: https://githubim.com
  • 通讯协议: WuKongIM协议
  • 提问: https://github.com/WuKongIM/WuKongIM/issues
  • 文档: https://githubim.com

演示

聊天Demo

image

Demo源码: https://github.com/WuKongIM/WuKongIMJSSDK/tree/main/examples

web聊天场景演示: http://imdemo.githubim.com

后端监控演示: http://monitor.githubim.com/web

特点

  • 📚 完全自研:自研消息数据库,消息分区永久存储,自研二进制协议(支持自定义),重写Go底层网络库,无缝支持TCP和websocket。
  • 🚀 性能强劲:单机支持百万用户同时在线,单机16w/秒消息(包括DB操作)吞吐量,一个频道支持万人同时订阅。
  • 🔔 零依赖:没有依赖任何第三方组件,部署简单,一条命令即可启动
  • 🔐 安全:消息通道和消息内容全程加密,防中间人攻击和窜改消息内容。
  • 🧱 扩展性强:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等。

功能特性

  • 支持自定义消息
  • 支持订阅/发布者模式
  • 支持个人/群聊/客服/社区资讯频道
  • 支持频道黑明单
  • 支持频道白名单
  • 支持消息永久漫游,换设备登录,消息不丢失
  • 支持在线状态,支持同账号多设备同时在线
  • 支持多设备消息实时同步
  • 支持用户最近会话列表服务端维护
  • 支持指令消息
  • 支持离线指令接口
  • 支持Webhook,轻松对接自己的业务系统
  • 支持Datasource,无缝对接自己的业务系统数据源
  • 支持Websocket连接
  • 支持TLS 1.3
  • 支持Prometheus监控
  • 监控系统开发
  • 支持Windows系统(仅开发用)
  • 支持流式消息,类似chatgpt的结果输出流
  • 支持分布式

快速运行

Docker部署


docker run -d -p 5001:5001 -p 5100:5100 -p 5172:5172 -p 5200:5200 -p 5210:5210 -p 5300:5300  --name wukongim -v ./wukongim:/root/wukongim  wukongim/wukongim:v1.2

二进制部署


wget -O wukongim https://github.com/WuKongIM/WuKongIM/releases/download/v1.2.1/wukongim-linux-amd64  # 其他系统请查看 https://github.com/WuKongIM/WuKongIM/releases

chmod +x wukongim

启动


./wukongim --config config/wk.yaml

源码部署


git clone https://github.com/WuKongIM/WuKongIM.git

cd WuKongIM

go run main.go --config config/wk.yaml

访问

查询系统信息: http://127.0.0.1:5001/varz

查看监控信息: http://127.0.0.1:5300/web

客户端演示地址:http://127.0.0.1:5172/chatdemo

端口解释:

5001: api端口
5100: tcp长连接端口
5172: demo端口
5200: websocket长连接端口
5300: 监控系统端口

配套SDK源码和Demo

项目名 Github地址 Example 文档 说明
WuKongIM Github 文档      悟空IM通讯端,负责长连接维护,消息投递等等
WuKongIMAndroidSDK Github Example 文档 悟空IM的Android SDK
WuKongIMiOSSDK Github Example 文档 悟空IM的iOS SDK
WuKongIMUniappSDK Github Example 文档 悟空IM的 Uniapp SDK
WuKongIMJSSDK Github Example 文档 悟空IM的 JS SDK
WuKongIMFlutterSDK Github Example 文档 悟空IM的 Flutter SDK
WuKongIMReactNativeDemo Github 悟空IM的 React Native Demo(由贡献者 wengqianshan 提供)

图解

总体架构图

总体架构图

业务系统对接

image

Webhook对接图

image

适用场景

即时通讯

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

消息推送/站内消息

  • 群频道支持
  • 个人频道支持
  • 离线消息推送支持

物联网通讯

  • mqtt协议支持(待开发)
  • 支持发布与订阅

音视频信令服务器

  • 支持临时指令消息投递

直播弹幕

  • 临时消息投递

  • 临时订阅者支持

客服系统

  • 客服频道支持

  • 消息支持投递给第三方服务器

  • 第三方服务器可决定分配指定的订阅者成组投递

实时AI反馈

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

即时社区

  • 社区频道支持
  • 支持topic模式的消息投递

监控截图

image image image image image

Star

我们团队一直致力于即时通讯的研发,需要您的鼓励,如果您觉得本项目对您有帮助,欢迎点个star,您的支持是我们最大的动力。

案例展示

项目名

TangSengDaoDao

开源地址

https://github.com/TangSengDaoDao/TangSengDaoDaoServer

截图

Wechat

如果有需要,加我拉你进群,微信号:wukongimgo

image

License

WuKongIM is licensed under the Apache License 2.0.

Go
1
https://gitee.com/WuKongDev/WuKongIM.git
git@gitee.com:WuKongDev/WuKongIM.git
WuKongDev
WuKongIM
WuKongIM
main

搜索帮助