Giter Site home page Giter Site logo

hub's Introduction

Hub

  • The global Hub has many Topics.
  • Every Topichas many subscribers and publisher, they are websocket connections.
  • One websocket connection will receive/publish messages from/to other subscribers.
  • Hub will publish Message to Topic.
  • Topic will send Message to all subscribers under it.
    • One subscriber maybe receive same messge for more than one times.
  • Every subscriber will subscribe the "global" Topic.

Core structures

const GlobalTopicID = "global"

// types of internal messages
const (
	MTPlain      string = "PLAIN"
	MTMarkdown   string = "MARKDOWN"
	MTMarkdownV2 string = "MARKDOWNV2"
	MTJSON       string = "JSON"
	MTHTML       string = "HTML"
	MTPhoto      string = "PHOTO"
	MTVideo      string = "VIDEO"
)

// types of websocket messages
const (
	MTFeedback string = "FEEDBACK" // used for async event feedback
	MTResponse string = "RESPONSE" // used for message response
	MTMessage  string = "MESSAGE"  // used for publish messages
)

type RawMessage struct {
	Type    string `json:"type"`    // required
	Data    string `json:"data"`    // required, string or base64 of bytes
	Caption string `json:"caption"` // optional
}

// http client message
type PubMessage struct {
	Type         string        `json:"type"`          // required
	Data         string        `json:"data"`          // required, string or base64 of bytes
	Caption      string        `json:"caption"`       // required
	ExtendedData []RawMessage  `json:"extended_data"` // optional, string or base64 of bytes, for sending multiple photos
}

hub's People

Contributors

weaming avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 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.