Documentation ¶
Index ¶
- func NewSubTree() *subTree
- type AuthHandler
- type Broker
- func (b *Broker) CreateClient(client *client.Client)
- func (b *Broker) DeleteClient(clientID string)
- func (b *Broker) HandlePacket(client *client.Client, packet *packets.ControlPacket)
- func (b *Broker) Name() string
- func (b *Broker) NotifyClientClose(client *client.Client)
- func (b *Broker) NotifyWillMessage(message *broker.WillMessage)
- func (b *Broker) ReadTopicRetainMessage(topic string) []*packet2.PublishMessage
- func (b *Broker) ReadTopicRetainWillMessage(topic string) []*packet2.PublishMessage
- func (b *Broker) ReleaseSession(clientID string)
- func (b *Broker) ReleaseWillMessage(session broker.Session)
- func (b *Broker) Start(ctx context.Context) error
- type ClientManager
- type ConnectHandler
- type DisconnectHandler
- type Handlers
- type Option
- func AppendMiddleware(packet byte, handle ...middleware.PacketMiddleware) Option
- func WithClientManager(manager *ClientManager) Option
- func WithHandlers(handlers *Handlers) Option
- func WithPublishRetry(schedule facade.RetrySchedule) Option
- func WithSessionManager(manager broker.SessionManager) Option
- func WithState(s *state.State) Option
- func WithStore(store *store.Wrapper) Option
- func WithSubCenter(tree broker.SubCenter) Option
- func WithUserAuth(auth middleware.UserAuth) Option
- type PingHandler
- type PubAck
- type PublishComp
- type PublishHandler
- type PublishRec
- type PublishRel
- type SubHandler
- type UnsubHandler
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 (*Broker) CreateClient ¶
func (*Broker) DeleteClient ¶
func (*Broker) HandlePacket ¶
func (b *Broker) HandlePacket(client *client.Client, packet *packets.ControlPacket)
func (*Broker) NotifyClientClose ¶
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 (*Broker) ReleaseWillMessage ¶
ReleaseWillMessage release will message from broker state machine and message store
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)
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 WithPublishRetry ¶
func WithPublishRetry(schedule facade.RetrySchedule) Option
func WithSessionManager ¶
func WithSessionManager(manager broker.SessionManager) Option
func WithSubCenter ¶
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 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)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.