protocol

package
v0.0.0-...-4e8a67a Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsCmdEqual

func IsCmdEqual(currentCommand *Command, testCommand Command) bool

Types

type Command

type Command int
const (
	CONNECT             Command = 0x10
	COMMAND_CONNACK     Command = 0x20
	COMMAND_PUBLISH     Command = 0x30
	COMMAND_PUBACK      Command = 0x40
	COMMAND_PUBREC      Command = 0x50
	COMMAND_PUBREL      Command = 0x62 // exactly equal
	COMMAND_PUBCOMP     Command = 0x70
	COMMAND_SUBSCRIBE   Command = 0x82 // exactly equal
	COMMAND_SUBACK      Command = 0x90
	COMMAND_UNSUBSCRIBE Command = 0xA2 // exactly equal
	COMMAND_UNSUBACK    Command = 0xB0
	COMMAND_PINGREQ     Command = 0xC0
	COMMAND_PINGRESP    Command = 0xD0
)

type ConnectReturnCode

type ConnectReturnCode byte
const (
	CONNECT_ACCEPCTED              ConnectReturnCode = 0x00 //Connection Accepted Connection accepted
	CONNECT_UNACCEPCTABLE_PROTOCOL ConnectReturnCode = 0x01 //Connection Refused, unacceptable protocol version The Server does not support the level of the MQTT protocol requested by the Client
	CONNECT_REJECTED_CLIENT        ConnectReturnCode = 0x02 //Connection Refused, identifier rejected The Client identifier is correct UTF-8 but not allowed by the Server
	CONNECT_SERVER_UNAVAILABLE     ConnectReturnCode = 0x03 //Connection Refused, Server unavailable The Network Connection has been made but the MQTT service is unavailable
	CONNECT_USER_OR_PASS_MALFORMED ConnectReturnCode = 0x04 //Connection Refused, bad user name or password The data in the user name or password is malformed
	CONNECT_NOT_AUTHORIZED         ConnectReturnCode = 0x05 //Connection Refused, not authorized The Client is not authorized to connect
)

type MqttCmdResult

type MqttCmdResult struct {
	Command *Command
	Data    []byte
	Err     error
}

type MqttProtocol

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

func NewMqttProtocol

func NewMqttProtocol(conn connection.ConnectionInterface) *MqttProtocol

func (*MqttProtocol) ConnectProcess

func (prot *MqttProtocol) ConnectProcess() (*ResponseConnect, error)

func (*MqttProtocol) End

func (prot *MqttProtocol) End()

func (*MqttProtocol) IsValidMqttCmd

func (prot *MqttProtocol) IsValidMqttCmd() *MqttCmdResult

func (*MqttProtocol) PingProcess

func (prot *MqttProtocol) PingProcess() error

func (*MqttProtocol) PubRelProcess

func (prot *MqttProtocol) PubRelProcess(data []byte, packetIdentifier *[]byte) error

func (*MqttProtocol) PublishProcess

func (prot *MqttProtocol) PublishProcess(data []byte) (*ResponsePublish, error)

func (*MqttProtocol) PublishSend

func (prot *MqttProtocol) PublishSend(Qos int, dutFlag bool, Retained bool, payload string, topic string, identifier []byte) error

func (*MqttProtocol) Start

func (prot *MqttProtocol) Start()

func (*MqttProtocol) SubscribeProcess

func (prot *MqttProtocol) SubscribeProcess(data []byte) (*ResponseSubscribe, error)

func (*MqttProtocol) UnSubscribeProcess

func (prot *MqttProtocol) UnSubscribeProcess(data []byte) (*ResponseSubscribe, error)

func (*MqttProtocol) UpdateLogger

func (prot *MqttProtocol) UpdateLogger(logger *logger.Logger)

type ResponseConnect

type ResponseConnect struct {
	Id        string
	Timeout   int
	KeepAlive int16
	Clean     bool
	Username  string
	Password  string
}

type ResponsePublish

type ResponsePublish struct {
	Identifier []byte
	Topic      string
	Payload    []byte

	Retained bool
	Qos      int
	// contains filtered or unexported fields
}

type ResponseSubscribe

type ResponseSubscribe struct {
	Identifier  []byte
	TopicFilter []string
	Qos         []int
	Conn        connection.ConnectionInterface
}

type SubscribeReturnCode

type SubscribeReturnCode byte
const (
	SUBSCRIBE_SUCCESS_QOS0 SubscribeReturnCode = 0x00 //- Success - Maximum QoS 0
	SUBSCRIBE_SUCCESS_QOS1 SubscribeReturnCode = 0x01 //- Success - Maximum QoS 1
	SUBSCRIBE_SUCCESS_QOS2 SubscribeReturnCode = 0x02 //- Success - Maximum QoS 2
	SUBSCRIBE_FAILED       SubscribeReturnCode = 0x80 //- Failure
)

Jump to

Keyboard shortcuts

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