Code Monkey home page Code Monkey logo

jococi / wukongim Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wukongim/wukongim

0.0 0.0 0.0 19.33 MB

High-performance universal communication service that supports instant messaging, message push, IoT communication, audio and video signaling, live broadcasting with bullet comments, customer service systems, AI communication, instant communities, and other scenarios.

Home Page: https://githubim.com

License: Apache License 2.0

JavaScript 0.05% Go 95.67% TypeScript 1.04% CSS 0.17% Makefile 0.02% HTML 0.02% Vue 2.92% Dockerfile 0.12%

wukongim's Introduction

WuKongIM (Make information transfer easier)

WuKongIM is a high-performance universal communication service that supports various scenarios such as instant messaging, message push, IoT communication, audio and video signaling, live broadcasting with bullet comments, customer service systems, AI communication, and instant communities.

(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.

中文文档

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 Datasoure, seamless integration with your own business system data source
  • Supports WebSocket connections
  • Supports TLS 1.3
  • Development of monitoring system
  • Support for Windows system deployment

Quick Start

docker run -d -p 5001:5001 -p 5100:5100 -p 5200:5200 -p 5300:5300 -e WK_EXTERNAL_IP=xxx.xxx.xxx.xx --name wukongim -v ~/wukongim:/root/wukongim wukongim/wukongim:latest

WK_EXTERNAL_IP: The external IP address of the server used for client connections. If testing only and the client and server are on the same LAN, the LAN IP address of the deployed server can be used here.

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

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

Demo: http://imdemo.githubim.com

For more deployment options, see the documentation.

SDK source code and demos

iOS Demo and SDK Source Code

Android Demo and SDK Source Code

Web Demo and SDK Source Code

Uniapp Demo and SDK Source Code

Flutter Demo and SDK Source Code (to be improved)

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

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.

wukongim's People

Contributors

limaoio avatar tangtaoit avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.