mqtt

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2019 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultDiscoverTimeout = 500 * time.Millisecond

DefaultDiscoverTimeout defines the default timeout value of discovery.

Variables

This section is empty.

Functions

func ClientOptionsFromURL

func ClientOptionsFromURL(serverURL string) (*paho.ClientOptions, string, error)

ClientOptionsFromURL creates ClientOptions from URL.

func MatchTopic

func MatchTopic(topic, pattern string) bool

MatchTopic matches topic with pattern.

Types

type ConnectHandler

type ConnectHandler func(*Queue)

ConnectHandler is to handle connect/disconnect events.

type Connector

type Connector struct {
	DiscoverTimeout time.Duration
	// contains filtered or unexported fields
}

Connector implements l1.Connector using MQTT.

func NewConnector

func NewConnector(brokerURL string) (*Connector, error)

NewConnector creates a Connector.

func (*Connector) Connect

func (c *Connector) Connect(ctx context.Context, ref l1.ControllerRef) (l1.ControllerConn, error)

Connect implements Connector.

func (*Connector) Discover

func (c *Connector) Discover(ctx context.Context) (res []l1.ControllerInfo, err error)

Discover implements Connector.

type ControllerConn

type ControllerConn struct {
	comm.ControllerConn
	Queue *Queue
}

ControllerConn implements ControllerConn using MQTT.

type Handler

type Handler func(topic string, payload []byte)

Handler is the callback when a message is received.

type Queue

type Queue struct {
	Client       paho.Client
	TopicPrefix  string
	OnConnect    ConnectHandler
	OnDisconnect ConnectHandler
	// contains filtered or unexported fields
}

Queue wraps MQTT client.

func NewQueue

func NewQueue(options *paho.ClientOptions, topicPrefix string) *Queue

NewQueue creates Queue.

func NewQueueFromURL

func NewQueueFromURL(brokerURL string) (*Queue, error)

NewQueueFromURL creates Queue from URL.

func (*Queue) Close

func (q *Queue) Close() error

Close implements io.Closer.

func (*Queue) Connect

func (q *Queue) Connect() paho.Token

Connect connects the client.

func (*Queue) ConnectionLostHandler

func (q *Queue) ConnectionLostHandler(c paho.Client, err error)

ConnectionLostHandler is the default implementation of paho.ConnectLostHandler.

func (*Queue) OnConnectHandler

func (q *Queue) OnConnectHandler(paho.Client)

OnConnectHandler is the default implementation of paho.OnConnectHandler.

func (*Queue) Pub

func (q *Queue) Pub(topic string, payload []byte) paho.Token

Pub publishes to a topic.

func (*Queue) PubWith

func (q *Queue) PubWith(topic string, payload []byte, qos byte, retain bool) paho.Token

PubWith publishes with QoS and retain settings.

func (*Queue) Resubscribe

func (q *Queue) Resubscribe() paho.Token

Resubscribe is used in OnConnect handler to subscribe all existing topics.

func (*Queue) Sub

func (q *Queue) Sub(topic string, handler Handler) *Subscription

Sub subscribes a topic

type ReadWriter

type ReadWriter struct {
	Queue    *Queue
	SubTopic string
	PubTopic string
	// contains filtered or unexported fields
}

ReadWriter implements PacketReadWriter.

func NewPacketReadWriter

func NewPacketReadWriter(q *Queue) *ReadWriter

NewPacketReadWriter creates the ReadWriter.

func (*ReadWriter) ForConnector

func (p *ReadWriter) ForConnector(ref l1.ControllerRef) *ReadWriter

ForConnector sets topics using default convention for connector: SubTopic = prefix/msg PubTopic = prefix/cmd

func (*ReadWriter) ForController

func (p *ReadWriter) ForController(ref l1.ControllerRef) *ReadWriter

ForController sets topics using default convention for L1 controller: SubTopic = prefix/cmd PubTopic = prefix/msg

func (*ReadWriter) ReadPacket

func (p *ReadWriter) ReadPacket() ([]byte, error)

ReadPacket implements PacketReader.

func (*ReadWriter) Run

func (p *ReadWriter) Run(ctx context.Context) error

Run implements Runnable.

func (*ReadWriter) WithTopics

func (p *ReadWriter) WithTopics(sub, pub string) *ReadWriter

WithTopics specifies the topics.

func (*ReadWriter) WritePacket

func (p *ReadWriter) WritePacket(pkt []byte) error

WritePacket implements PacketWriter.

type Registrar

type Registrar struct {
	Queue *Queue
	Info  l1.ControllerInfo
	// contains filtered or unexported fields
}

Registrar implements l1.Registrar using MQTT.

func NewRegistrar

func NewRegistrar(brokerURL string, info l1.ControllerInfo) (*Registrar, error)

NewRegistrar creates a Registrar.

func (*Registrar) AddToLoop

func (r *Registrar) AddToLoop(loop *fx.Loop)

AddToLoop implements LoopAdder.

func (*Registrar) Run

func (r *Registrar) Run(ctx context.Context) error

Run implements Runnable.

func (*Registrar) SendEvent

func (r *Registrar) SendEvent(ctx context.Context, msg fx.Message) error

SendEvent implements Registrar.

type Subscription

type Subscription struct {
	Token paho.Token
	// contains filtered or unexported fields
}

Subscription is a subscribed topic.

func (*Subscription) Close

func (s *Subscription) Close() error

Close unsubscribes a handler.

Jump to

Keyboard shortcuts

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