session

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 29, 2023 License: Apache-2.0 Imports: 6 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewContext added in v0.3.0

func NewContext(ctx context.Context, s *Session) context.Context

NewContext stores Session in context.Context values. It uses pointer to the session so it can be modified by handler.

func Stream added in v0.3.0

func Stream(ctx context.Context, inbound, outbound net.Conn, handler Handler, cert x509.Certificate) error

Stream starts proxy between client and broker.

Types

type Handler added in v0.1.8

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)

	// After client successfully published
	Publish(ctx context.Context, topic *string, payload *[]byte)

	// After client successfully subscribed
	Subscribe(ctx context.Context, topics *[]string)

	// After client unsubscribed
	Unsubscribe(ctx context.Context, topics *[]string)

	// Disconnect on connection with client lost
	Disconnect(ctx context.Context)
}

Handler is an interface for mProxy hooks

type Session

type Session struct {
	ID       string
	Username string
	Password []byte
	Cert     x509.Certificate
}

Session stores MQTT session data.

func FromContext added in v0.3.0

func FromContext(ctx context.Context) (*Session, bool)

FromContext retrieves Session from context.Context. Second value indicates if session is present in the context and if it's safe to use it (it's not nil).

Jump to

Keyboard shortcuts

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