Git Product home page Git Product logo

koishi-plugin-broker's Introduction

koishi-plugin-broker

npm

基于 broker 的订阅发布服务

插件

使用

import { Context, Schema } from 'koishi'
import 'koishi-service-broker'

export const name = 'test-broker'

export const inject = ['broker']

export interface Config {}

export const Config: Schema<Config> = Schema.object({})

export function apply(ctx: Context) {
    
  // subscribe
  ctx.broker.subscribe('koishi:test', (data: any, properties: any) => {
    // your logic
  })

  // publish
  ctx.broker.publish('koishi:test', 'foobar')
}

创建你的自定义服务

import { Context, Schema } from 'koishi'
import Broker, { ListenerFunc } from 'koishi-service-broker'

class YourCustomBroker extends Broker {


  constructor(ctx: Context, config: MqttBroker.Config) {
    super(ctx)
    // ... your startup logic
  }

  async subscribe(topic: string, callback: ListenerFunc): Promise<unknown> {
    // ... your subscribe logic
  }

  async unsubscribe(topic: string): Promise<unknown> {
     // ... your unsubscribe logic
  }

  async publish(topic: string, data: any): Promise<unknown> {
     // ... your publish logic
  }

  async close(): Promise<void> {
     // ... your close logic
  }
  
}

namespace YourCustomBroker { 

  export interface Config {
    // your config
  }

  export const Config: Schema<Config> = Schema.object({
    // your config schema
  })

}


export default YourCustomBroker;

koishi-plugin-broker's People

Contributors

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