sbus

package module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2024 License: BSD-3-Clause Imports: 5 Imported by: 9

README

go-sbus

Pub/Sub
import "github.com/kulikov/go-sbus"

sbus.Sub("my-command-subject", func(msg sbus.Message, log *logrus.Entry) error {
    log.Infof("Receive: %v", msg)
    return nil
})

sbus.Pub("my-command-subject", map[string]string{"do": "any"})
Request/Reply
import "github.com/kulikov/go-sbus"

sbus.Sub("get-user", func(msg sbus.Message, log *logrus.Entry) error {
    sbus.Reply(map[string]string{"name": "dima", "userId": msg.Data["userId"]})
    return nil
})

sbus.Request("get-user", map[string]string{"userId":"12345"}, func(msg sbus.Message, log *logrus.Entry) error {
    log.Infof("Result: %v", msg)
    return nil
})

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Marshal

func Marshal(data interface{}) []byte

Types

type Message

type Message struct {
	Subject string          `json:"subject"`
	Data    json.RawMessage `json:"data,omitempty"`
	Meta    Meta            `json:"meta,omitempty"`
}

func (Message) String

func (m Message) String() string

func (Message) Unmarshal

func (m Message) Unmarshal(v interface{}) error

func (Message) WithMeta

func (m Message) WithMeta(key string, value interface{}) Message

type MessageHandler

type MessageHandler func(Message) error

type Meta

type Meta map[string]interface{}

type Sbus

type Sbus struct {
	// contains filtered or unexported fields
}

func New

func New(transp Transport, log *logrus.Entry) *Sbus

func (*Sbus) Pub

func (s *Sbus) Pub(subject string, data interface{}) error

func (*Sbus) PubM

func (s *Sbus) PubM(msg Message) error

func (*Sbus) Reply

func (s *Sbus) Reply(msg Message, response interface{}) error

func (*Sbus) Request

func (s *Sbus) Request(subject string, data interface{}, handler MessageHandler, timeout time.Duration) error

func (*Sbus) RequestM

func (s *Sbus) RequestM(msg Message, handler MessageHandler, timeout time.Duration) error

func (*Sbus) Sub

func (s *Sbus) Sub(subject string, handler MessageHandler)

type Transport

type Transport interface {
	Sub(subject string, handler MessageHandler) error
	SubOnce(subject string, handler MessageHandler) error
	Pub(msg *Message) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL