broker

package
v0.0.0-...-edd4e79 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2023 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewSubTree

func NewSubTree() *subTree

Types

type AuthHandler

type AuthHandler struct {
}

func NewAuthHandler

func NewAuthHandler() *AuthHandler

func (*AuthHandler) Handle

func (a *AuthHandler) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type Broker

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

func NewBroker

func NewBroker(option ...Option) *Broker

func (*Broker) CreateClient

func (b *Broker) CreateClient(client *client.Client)

func (*Broker) DeleteClient

func (b *Broker) DeleteClient(clientID string)

func (*Broker) HandlePacket

func (b *Broker) HandlePacket(client *client.Client, packet *packets.ControlPacket)

func (*Broker) Name

func (b *Broker) Name() string

func (*Broker) NotifyClientClose

func (b *Broker) NotifyClientClose(client *client.Client)

func (*Broker) NotifyWillMessage

func (b *Broker) NotifyWillMessage(message *broker.WillMessage)

func (*Broker) ReadTopicRetainMessage

func (b *Broker) ReadTopicRetainMessage(topic string) []*packet2.PublishMessage

func (*Broker) ReadTopicRetainWillMessage

func (b *Broker) ReadTopicRetainWillMessage(topic string) []*packet2.PublishMessage

func (*Broker) ReleaseSession

func (b *Broker) ReleaseSession(clientID string)

func (*Broker) ReleaseWillMessage

func (b *Broker) ReleaseWillMessage(session broker.Session)

ReleaseWillMessage release will message from broker state machine and message store

func (*Broker) Start

func (b *Broker) Start(ctx context.Context) error

type ClientManager

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

func NewClientManager

func NewClientManager() *ClientManager

func (*ClientManager) CreateClient

func (c *ClientManager) CreateClient(client *client.Client)

func (*ClientManager) DeleteClient

func (c *ClientManager) DeleteClient(clientID string)

func (*ClientManager) ReadClient

func (c *ClientManager) ReadClient(clientID string) (*client.Client, bool)

func (*ClientManager) Write

func (c *ClientManager) Write(clientID string, packet packets.Packet)

type ConnectHandler

type ConnectHandler struct {
}

func NewConnectHandler

func NewConnectHandler() *ConnectHandler

func (*ConnectHandler) Handle

func (c *ConnectHandler) Handle(broker *Broker, client *client2.Client, packet *packets.ControlPacket)

type DisconnectHandler

type DisconnectHandler struct {
}

func NewDisconnectHandler

func NewDisconnectHandler() *DisconnectHandler

func (*DisconnectHandler) Handle

func (d *DisconnectHandler) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type Handlers

type Handlers struct {
	Connect     brokerHandler
	Publish     brokerHandler
	PublishAck  brokerHandler
	PublishRec  brokerHandler
	PublishRel  brokerHandler
	PublishComp brokerHandler
	Ping        brokerHandler
	Sub         brokerHandler
	UnSub       brokerHandler
	Auth        brokerHandler
	Disconnect  brokerHandler
}

type Option

type Option func(*Broker)

func AppendMiddleware

func AppendMiddleware(packet byte, handle ...middleware.PacketMiddleware) Option

func WithClientManager

func WithClientManager(manager *ClientManager) Option

func WithHandlers

func WithHandlers(handlers *Handlers) Option

func WithPublishRetry

func WithPublishRetry(schedule facade.RetrySchedule) Option

func WithSessionManager

func WithSessionManager(manager broker.SessionManager) Option

func WithState

func WithState(s *state.State) Option

func WithStore

func WithStore(store *store.Wrapper) Option

func WithSubCenter

func WithSubCenter(tree broker.SubCenter) Option

func WithUserAuth

func WithUserAuth(auth middleware.UserAuth) Option

type PingHandler

type PingHandler struct {
}

func NewPingHandler

func NewPingHandler() *PingHandler

func (*PingHandler) Handle

func (p *PingHandler) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type PubAck

type PubAck struct {
}

func NewPublishAck

func NewPublishAck() *PubAck

func (*PubAck) Handle

func (a *PubAck) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type PublishComp

type PublishComp struct {
}

func NewPublishComp

func NewPublishComp() *PublishComp

func (*PublishComp) Handle

func (a *PublishComp) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type PublishHandler

type PublishHandler struct {
}

func NewPublishHandler

func NewPublishHandler() *PublishHandler

func (*PublishHandler) Handle

func (p *PublishHandler) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type PublishRec

type PublishRec struct {
}

func NewPublishRec

func NewPublishRec() *PublishRec

func (*PublishRec) Handle

func (p *PublishRec) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type PublishRel

type PublishRel struct {
}

func NewPublishRel

func NewPublishRel() *PublishRel

func (*PublishRel) Handle

func (p *PublishRel) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type SubHandler

type SubHandler struct {
}

func NewSubHandler

func NewSubHandler() *SubHandler

func (*SubHandler) Handle

func (s *SubHandler) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

type UnsubHandler

type UnsubHandler struct {
}

func NewUnsubHandler

func NewUnsubHandler() *UnsubHandler

func (*UnsubHandler) Handle

func (u *UnsubHandler) Handle(broker *Broker, client *client.Client, rawPacket *packets.ControlPacket)

Directories

Path Synopsis
tcp

Jump to

Keyboard shortcuts

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