Documentation ¶
Overview ¶
Package broker is an interface used for asynchronous messaging
Index ¶
- func Connect() error
- func Disconnect() error
- func Init(opts ...Option) error
- func Publish(ctx context.Context, topic string, msg *Message, opts ...PublishOption) error
- func String() string
- type Broker
- type Event
- type Handler
- type Message
- type Option
- type Options
- type PublishOption
- type PublishOptions
- type SubscribeOption
- type SubscribeOptions
- type Subscriber
- type Wrapper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Disconnect ¶
func Disconnect() error
Types ¶
type Broker ¶
type Broker interface { Init(...Option) error Options() Options Address() string Connect() error Disconnect() error Publish(ctx context.Context, topic string, m *Message, opts ...PublishOption) error Subscribe(topic string, h Handler, opts ...SubscribeOption) (Subscriber, error) String() string }
Broker is an interface used for asynchronous messaging.
var ( // DefaultBroker is the default Broker. DefaultBroker Broker = NewMemoryBroker() )
func NewMemoryBroker ¶
type Handler ¶
Handler is used to process messages via a subscription of a topic. The handler is passed a publication interface which contains the message and optional Ack method to acknowledge receipt of the message.
type Option ¶
type Option func(*Options)
func Codec ¶
Codec sets the codec used for encoding/decoding used where a broker does not support headers.
func DisableAutoAck ¶
func DisableAutoAck() Option
DisableAutoAck will disable auto acking of messages after they have been handled.
func ErrorHandler ¶
ErrorHandler will catch all broker errors that cant be handled in normal way, for example Codec errors.
type Options ¶
type Options struct { Codec encoding.Codec // Logger is the underlying logger Logger logger.Logger // Other options for implementations of the interface // can be stored in a context Context context.Context // Handler executed when error happens in broker mesage // processing ErrorHandler Handler TLSConfig *tls.Config Addrs []string Secure bool PublishOptions PublishOptions SubscribeOptions SubscribeOptions // Middleware for client Wrappers []Wrapper }
func NewOptions ¶
type PublishOption ¶
type PublishOption func(*PublishOptions)
func PublishContext ¶
func PublishContext(ctx context.Context) PublishOption
PublishContext set context.
type PublishOptions ¶
type SubscribeOption ¶
type SubscribeOption func(*SubscribeOptions)
func SubscribeContext ¶
func SubscribeContext(ctx context.Context) SubscribeOption
SubscribeContext set context.
func SubscribeDisableAutoAck ¶
func SubscribeDisableAutoAck() SubscribeOption
SubscribeDisableAutoAck will disable auto acking of messages after they have been handled.
func SubscribeQueue ¶
func SubscribeQueue(name string) SubscribeOption
SubscribeQueue sets the name of the queue to share messages on.
type SubscribeOptions ¶
type SubscribeOptions struct { // Subscribers with the same queue name // will create a shared subscription where each // receives a subset of messages. Queue string // AutoAck defaults to true. When a handler returns // with a nil error the message is acked. AutoAck bool // Other options for implementations of the interface // can be stored in a context Context context.Context }
func NewSubscribeOptions ¶
func NewSubscribeOptions(opts ...SubscribeOption) SubscribeOptions
type Subscriber ¶
type Subscriber interface { Options() SubscribeOptions Topic() string Unsubscribe() error }
Subscriber is a convenience return type for the Subscribe method.
func Subscribe ¶
func Subscribe(topic string, handler Handler, opts ...SubscribeOption) (Subscriber, error)