Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewContext ¶
NewContext stores Session in context.Context values. It uses pointer to the session so it can be modified by handler.
Types ¶
type Handler ¶
type Handler interface {
// Authorization on client `CONNECT`
// Each of the params are passed by reference, so that it can be changed
AuthConnect(ctx context.Context) error
// Authorization on client `PUBLISH`
// Topic is passed by reference, so that it can be modified
AuthPublish(ctx context.Context, topic *string, payload *[]byte) error
// Authorization on client `SUBSCRIBE`
// Topics are passed by reference, so that they can be modified
AuthSubscribe(ctx context.Context, topics *[]string) error
// After client successfully connected
Connect(ctx context.Context) error
// After client successfully published
Publish(ctx context.Context, topic *string, payload *[]byte) error
// After client successfully subscribed
Subscribe(ctx context.Context, topics *[]string) error
// After client unsubscribed
Unsubscribe(ctx context.Context, topics *[]string) error
// Disconnect on connection with client lost
Disconnect(ctx context.Context) error
}
Handler is an interface for mGate hooks.
type Interceptor ¶
type Interceptor interface {
// Intercept is called on every packet flowing through the Proxy.
// Packets can be modified before being sent to the broker or the client.
// If the interceptor returns a non-nil packet, the modified packet is sent.
// The error indicates unsuccessful interception and mGate is cancelling the packet.
Intercept(ctx context.Context, pkt packets.ControlPacket, dir Direction) (packets.ControlPacket, error)
}
Interceptor is an interface for mGate intercept hook.
Click to show internal directories.
Click to hide internal directories.