packet

package
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2020 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var SupportedVersions map[byte]string = map[byte]string{
	0x3: "MQIsdp",
	0x4: "MQTT",
}

Functions

func BytesDup

func BytesDup(buf []byte) []byte

func Encode

func Encode(msg Message) ([]byte, []byte, error)

func LenLen

func LenLen(rl int) int

func ReadBytes

func ReadBytes(buf []byte) ([]byte, error)

func ReadRemainLength

func ReadRemainLength(b []byte) (int, int, error)

func WriteBytes

func WriteBytes(buf []byte, b []byte) error

func WriteRemainLength

func WriteRemainLength(b []byte, rl int) (int, error)

Types

type Connack

type Connack struct {
	Header
	// contains filtered or unexported fields
}

func (*Connack) Code

func (msg *Connack) Code() ConnackCode

func (*Connack) Decode

func (msg *Connack) Decode(buf []byte) error

func (*Connack) Encode

func (msg *Connack) Encode() ([]byte, []byte, error)

func (*Connack) SessionPresent

func (msg *Connack) SessionPresent() bool

func (*Connack) SetCode

func (msg *Connack) SetCode(c ConnackCode)

func (*Connack) SetSessionPresent

func (msg *Connack) SetSessionPresent(b bool)

type ConnackCode

type ConnackCode byte
const (
	CONNACK_ACCEPTED ConnackCode = iota
	CONNACK_ERROR_VERSION
	CONNACK_INVALID_CLIENT_ID
	CONNACK_UNAVAILABLE
	CONNACK_INVALID_USERNAME_PASSWORD
	CONNACK_NOT_AUTHORIZED
)

type Connect

type Connect struct {
	Header
	// contains filtered or unexported fields
}

func (*Connect) CleanSession

func (msg *Connect) CleanSession() bool

func (*Connect) ClientId

func (msg *Connect) ClientId() []byte

func (*Connect) Decode

func (msg *Connect) Decode(buf []byte) error

func (*Connect) Encode

func (msg *Connect) Encode() ([]byte, []byte, error)

func (*Connect) KeepAlive

func (msg *Connect) KeepAlive() uint16

func (*Connect) Password

func (msg *Connect) Password() []byte

func (*Connect) PasswordFlag

func (msg *Connect) PasswordFlag() bool

func (*Connect) ProtoLevel

func (msg *Connect) ProtoLevel() byte

func (*Connect) ProtoName

func (msg *Connect) ProtoName() []byte

func (*Connect) SetCleanSession

func (msg *Connect) SetCleanSession(b bool)

func (*Connect) SetClientId

func (msg *Connect) SetClientId(b []byte)

func (*Connect) SetKeepAlive

func (msg *Connect) SetKeepAlive(k uint16)

func (*Connect) SetPassword

func (msg *Connect) SetPassword(b []byte)

func (*Connect) SetPasswordFlag

func (msg *Connect) SetPasswordFlag(b bool)

func (*Connect) SetProtoLevel

func (msg *Connect) SetProtoLevel(b byte)

func (*Connect) SetProtoName

func (msg *Connect) SetProtoName(b []byte)

func (*Connect) SetUserName

func (msg *Connect) SetUserName(b []byte)

func (*Connect) SetUserNameFlag

func (msg *Connect) SetUserNameFlag(b bool)

func (*Connect) SetWillFlag

func (msg *Connect) SetWillFlag(b bool)

func (*Connect) SetWillMessage

func (msg *Connect) SetWillMessage(b []byte)

func (*Connect) SetWillQos

func (msg *Connect) SetWillQos(qos MsgQos)

func (*Connect) SetWillRetain

func (msg *Connect) SetWillRetain(b bool)

func (*Connect) SetWillTopic

func (msg *Connect) SetWillTopic(b []byte)

func (*Connect) UserName

func (msg *Connect) UserName() []byte

func (*Connect) UserNameFlag

func (msg *Connect) UserNameFlag() bool

func (*Connect) ValidClientId

func (msg *Connect) ValidClientId() bool

func (*Connect) WillFlag

func (msg *Connect) WillFlag() bool

func (*Connect) WillMessage

func (msg *Connect) WillMessage() []byte

func (*Connect) WillQos

func (msg *Connect) WillQos() MsgQos

func (*Connect) WillRetain

func (msg *Connect) WillRetain() bool

func (*Connect) WillTopic

func (msg *Connect) WillTopic() []byte

type DisConnect

type DisConnect struct {
	Header
}

func (*DisConnect) Decode

func (msg *DisConnect) Decode(buf []byte) error

func (*DisConnect) Encode

func (msg *DisConnect) Encode() ([]byte, []byte, error)
type Header struct {
	// contains filtered or unexported fields
}

func (*Header) Dup

func (hdr *Header) Dup() bool

func (*Header) Qos

func (hdr *Header) Qos() MsgQos

func (*Header) RemainLength

func (hdr *Header) RemainLength() int

func (*Header) Retain

func (hdr *Header) Retain() bool

func (*Header) SetDup

func (hdr *Header) SetDup(b bool)

func (*Header) SetQos

func (hdr *Header) SetQos(qos MsgQos)

func (*Header) SetRetain

func (hdr *Header) SetRetain(b bool)

func (*Header) SetType

func (hdr *Header) SetType(t MsgType)

func (*Header) Type

func (hdr *Header) Type() MsgType

type Message

type Message interface {
	Type() MsgType
	SetType(t MsgType)
	Dup() bool
	SetDup(b bool)
	Qos() MsgQos
	SetQos(qos MsgQos)
	Retain() bool
	SetRetain(b bool)
	RemainLength() int

	Decode([]byte) error
	Encode() ([]byte, []byte, error)
}

func Decode

func Decode(buf []byte) (Message, error)

type MsgQos

type MsgQos byte
const (
	//At most once
	Qos0 MsgQos = iota
	//At least once
	Qos1
	//Exactly once
	Qos2
)

func (MsgQos) Level

func (qos MsgQos) Level() uint8

func (MsgQos) Name

func (qos MsgQos) Name() string

type MsgType

type MsgType byte
const (
	RESERVED MsgType = iota
	CONNECT
	CONNACK
	PUBLISH
	PUBACK
	PUBREC
	PUBREL
	PUBCOMP
	SUBSCRIBE
	SUBACK
	UNSUBSCRIBE
	UNSUBACK
	PINGREQ
	PINGRESP
	DISCONNECT
	RESERVED2
)

func (MsgType) Name

func (mt MsgType) Name() string

func (MsgType) NewMessage

func (mt MsgType) NewMessage() Message

type Parser added in v0.0.4

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

func (*Parser) Parse added in v0.0.4

func (p *Parser) Parse(buf []byte) []Message

type PingReq

type PingReq struct {
	Header
}

func (*PingReq) Decode

func (msg *PingReq) Decode(buf []byte) error

func (*PingReq) Encode

func (msg *PingReq) Encode() ([]byte, []byte, error)

type PingResp

type PingResp struct {
	PingReq
}

type PubAck

type PubAck struct {
	Header
	// contains filtered or unexported fields
}

func (*PubAck) Decode

func (msg *PubAck) Decode(buf []byte) error

func (*PubAck) Encode

func (msg *PubAck) Encode() ([]byte, []byte, error)

func (*PubAck) PacketId

func (msg *PubAck) PacketId() uint16

func (*PubAck) SetPacketId

func (msg *PubAck) SetPacketId(p uint16)

type PubComp

type PubComp struct {
	PubAck
}

type PubRec

type PubRec struct {
	PubAck
}

type PubRel

type PubRel struct {
	PubAck
}

type Publish

type Publish struct {
	Header
	// contains filtered or unexported fields
}

func (*Publish) Decode

func (msg *Publish) Decode(buf []byte) error

func (*Publish) Encode

func (msg *Publish) Encode() ([]byte, []byte, error)

func (*Publish) PacketId

func (msg *Publish) PacketId() uint16

func (*Publish) Payload

func (msg *Publish) Payload() []byte

func (*Publish) SetPacketId

func (msg *Publish) SetPacketId(p uint16)

func (*Publish) SetPayload

func (msg *Publish) SetPayload(p []byte)

func (*Publish) SetTopic

func (msg *Publish) SetTopic(b []byte)

func (*Publish) Topic

func (msg *Publish) Topic() []byte

type SubAck

type SubAck struct {
	Header
	// contains filtered or unexported fields
}

func (*SubAck) AddCode

func (msg *SubAck) AddCode(c SubCode)

func (*SubAck) ClearCode

func (msg *SubAck) ClearCode()

func (*SubAck) Codes

func (msg *SubAck) Codes() []byte

func (*SubAck) Decode

func (msg *SubAck) Decode(buf []byte) error

func (*SubAck) Encode

func (msg *SubAck) Encode() ([]byte, []byte, error)

func (*SubAck) PacketId

func (msg *SubAck) PacketId() uint16

func (*SubAck) SetPacketId

func (msg *SubAck) SetPacketId(p uint16)

type SubCode

type SubCode byte
const (
	SUB_CODE_QOS0 SubCode = iota
	SUB_CODE_QOS1
	SUB_CODE_QOS2
	SUB_CODE_ERR = 128
)

type SubTopic

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

func (*SubTopic) Qos

func (msg *SubTopic) Qos() MsgQos

func (*SubTopic) SetQos

func (msg *SubTopic) SetQos(qos MsgQos)

func (*SubTopic) SetTopic

func (msg *SubTopic) SetTopic(b []byte)

func (*SubTopic) Topic

func (msg *SubTopic) Topic() []byte

type Subscribe

type Subscribe struct {
	Header
	// contains filtered or unexported fields
}

func (*Subscribe) AddTopic

func (msg *Subscribe) AddTopic(topic []byte, qos MsgQos)

func (*Subscribe) ClearTopic

func (msg *Subscribe) ClearTopic()

func (*Subscribe) Decode

func (msg *Subscribe) Decode(buf []byte) error

func (*Subscribe) Encode

func (msg *Subscribe) Encode() ([]byte, []byte, error)

func (*Subscribe) PacketId

func (msg *Subscribe) PacketId() uint16

func (*Subscribe) SetPacketId

func (msg *Subscribe) SetPacketId(p uint16)

func (*Subscribe) Topics

func (msg *Subscribe) Topics() []*SubTopic

type UnSubAck

type UnSubAck struct {
	PubAck
}

type UnSubscribe

type UnSubscribe struct {
	Header
	// contains filtered or unexported fields
}

func (*UnSubscribe) AddTopic

func (msg *UnSubscribe) AddTopic(topic []byte)

func (*UnSubscribe) ClearTopic

func (msg *UnSubscribe) ClearTopic()

func (*UnSubscribe) Decode

func (msg *UnSubscribe) Decode(buf []byte) error

func (*UnSubscribe) Encode

func (msg *UnSubscribe) Encode() ([]byte, []byte, error)

func (*UnSubscribe) PacketId

func (msg *UnSubscribe) PacketId() uint16

func (*UnSubscribe) SetPacketId

func (msg *UnSubscribe) SetPacketId(p uint16)

func (*UnSubscribe) Topics

func (msg *UnSubscribe) Topics() [][]byte

Jump to

Keyboard shortcuts

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