Go to file
tangtaoit 7cd27f546f fix: the problem of messageSeq being discontinuous when using multiple segments 2024-06-14 11:04:28 +08:00
.github/workflows chore: upgrade slsa-verifier to 2.5.1 2024-03-26 12:29:15 +08:00
cmd fix: fix the problem of invalid blacklist 2024-03-02 16:23:50 +08:00
config feat: add deadlockCheck and pprofOn config 2024-05-16 11:10:39 +08:00
demo/chatdemo fix: Update chatdemo 2023-11-20 17:59:45 +08:00
docs docs: add tsdaodao case 2023-12-19 13:49:31 +08:00
internal feat: add get channel max message seq api 2024-05-16 21:54:14 +08:00
pkg fix: the problem of messageSeq being discontinuous when using multiple segments 2024-06-14 11:04:28 +08:00
slsa feat: 增加windows打包脚本 2023-06-28 11:55:41 +08:00
version feat: 内嵌web聊天场景的demo 2023-06-29 11:52:11 +08:00
web feat: 监控增加登录认证 2023-08-04 01:02:46 +08:00
.dockerignore docs: update 2023-06-18 14:14:50 +08:00
.gitignore fix: 修复docker-compose脚本不能打开chatdemo的问题 2023-08-02 10:26:44 +08:00
Dockerfile fix: solve the problem of crash caused by conversation map competition lock 2024-04-11 19:08:36 +08:00
Dockerfile.arm64 feat: add arm64 docker script for arm64 2023-08-29 21:57:07 +08:00
LICENSE Initial commit 2023-05-09 09:46:51 +08:00
Makefile feat: Upgrade to v1.2.5 2024-05-31 17:12:55 +08:00
README.md Update README.md 2024-03-20 22:53:36 +08:00
README_CN.md docs: update README 2024-03-26 12:47:11 +08:00
docker-compose.yaml fix: 修复docker-compose脚本不能打开chatdemo的问题 2023-08-02 10:35:27 +08:00
go.mod feat: Upgrade to v1.2.5 2024-05-31 17:12:55 +08:00
go.sum fix: Solve the concurrency problem with the tlsConn attribute in the wknet package 2024-05-06 22:30:34 +08:00
main.go fix: remove syscall.Dup2 2024-05-07 11:36:48 +08:00
wechat.jpg feat: 增加sub和suback协议 2023-06-23 09:38:34 +08:00

README.md

WuKongIM (Make information transfer easier)

9 years of accumulation, precipitated a high-performance universal communication service,message center, supporting instant messaging, message push, IoT communication, audio and video signaling, live broadcast barrage, customer service system, AI communication, instant community and other scenarios.

(Note: This project is a general underlying instant messaging service. The upper layer needs to dock with its own specific business system (which can be easily docked with its own business system through the webhook and datasource mechanism). The core of this project mainly maintains a large number of long connections of clients and delivers messages according to the message rules of third-party business systems.)

This project needs to be compiled in a go1.20.0 or higher version.

中文文档

Demo

Chat Demo

image

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

Web chat scene demo: http://imdemo.githubim.com

Backend monitoring demo: http://monitor.githubim.com/web

Features

  • 📚 Fully self-developed: WuKongIM uses a self-developed message database, binary protocol, and network library, and supports custom protocols.
  • 🚀 High performance: WuKongIM can handle millions of online users and has a throughput of 160,000 messages per second (including database operations).
  • 🔔 Zero dependencies: WuKongIM has no third-party dependencies and is easy to deploy.
  • 🔐 Security: WuKongIM encrypts both message channels and message content to prevent man-in-the-middle attacks and message tampering.
  • 🧱 Highly extensible: WuKongIM uses a channel-based design and currently supports group and point-to-point channels. It can be extended to support custom channels for use cases such as chatbots and customer service.

TODO

  • Supports custom messages
  • Supports subscription/publisher mode
  • Supports personal/group chat/customer service/community news channels
  • Supports channel blacklists
  • Supports channel whitelists
  • Supports permanent message storage, device switching, and message retention
  • Supports online status and multiple devices logged in simultaneously with the same account
  • Supports real-time synchronization of messages across multiple devices
  • Supports server-side maintenance of user's recent conversation list
  • Supports command messages
  • Supports offline command interface
  • Supports Webhook, easy integration with your own business system
  • Supports Datasource, seamless integration with your own business system data source
  • Supports WebSocket connections
  • Supports TLS 1.3
  • Development of monitoring system
  • Support for Windows system (For development use only)
  • Supports streaming messages, similar to the output stream of chatgpt results.
  • Supports distributed systems

Quick Start

Docker Deployment

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

Binary Deployment

wget -O wukongim https://github.com/WuKongIM/WuKongIM/releases/download/v1.2.1/wukongim-linux-amd64  # For other systems, please check https://github.com/WuKongIM/WuKongIM/releases
chmod +x wukongim

Start

./wukongim --config config/wk.yaml

Source code


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

cd WuKongIM

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

Configuration server information (context)

View System information: http://127.0.0.1:5001/varz

View Monitor information: http://127.0.0.1:5300/web

Demo: http://127.0.0.1:5172/chatdemo

For more deployment options, see the documentation.

Port explanation:

5001: API port
5100: TCP long connection port
5172: Demo port
5200: WebSocket long connection port
5300: Monitoring system port

SDK source code and demos

Project Name Github Address Example Documentation Description
WuKongIM Github Documentation      WuKongIM communication end, responsible for long connection maintenance, message delivery, etc.
WuKongIMAndroidSDK Github Example Documentation WuKongIM's Android SDK
WuKongIMiOSSDK Github Example Documentation WuKongIM's iOS SDK
WuKongIMUniappSDK Github Example Documentation WuKongIM's Uniapp SDK
WuKongIMJSSDK Github Example Documentation WuKongIM's JS SDK
WuKongIMFlutterSDK Github Example Documentation WuKongIM's Flutter SDK
WuKongIMReactNativeDemo Github None None WuKongIM's React Native Demo (provided by contributor wengqianshan)

Illustration

Architecture

image

Business System Integration

image

Webhook

image

Applicable Scenarios

Instant Messaging

  • Supports group channels
  • Supports personal channels
  • Supports permanent message storage
  • Supports offline message push
  • Supports recent conversation maintenance

Message Push/Site Message

  • Supports group channels
  • Supports personal channels
  • Supports offline message push

IoT Communication

  • Supports MQTT protocol (to be developed)
  • Supports publish and subscribe

Audio and Video Signaling Server

  • Supports temporary command message delivery

Live Broadcast Bullet Screens

  • Supports temporary message delivery
  • Supports temporary subscriber support

Customer Service System

  • Supports customer service channels
  • Messages can be delivered to third-party servers
  • Third-party servers can decide to allocate designated subscribers to deliver messages in groups

Real-time AI Feedback

  • Supports pushing messages sent by clients to third-party servers, and the results returned by AI after being fed back by third-party servers are pushed back to clients

Instant Community

  • Supports community channels
  • Supports message delivery in topic mode

Monitor

image image image image image

Star

Our team has been committed to the research and development of instant messaging. We need your encouragement. If you find this project helpful, please give it a star. Your support is our greatest motivation.

Case

Project

TangSengDaoDao

Github

https://github.com/TangSengDaoDao/TangSengDaoDaoServer

Screenshot

Wechat

If necessary, add me and I will invite you to the group. My WeChat ID is wukongimgo.

image

License

WuKongIM is licensed under the Apache License 2.0.