Documentation ¶
Index ¶
- Constants
- Variables
- type ConnackPacket
- type ConnectPacket
- type ControlPacket
- type Details
- type DisconnectPacket
- type FixedHeader
- type PingreqPacket
- type PingrespPacket
- type PubackPacket
- type PubcompPacket
- type PublishPacket
- type PubrecPacket
- type PubrelPacket
- type SubackPacket
- type SubscribePacket
- type UnsubackPacket
- type UnsubscribePacket
Constants ¶
const ( Connect = 1 Connack = 2 Publish = 3 Puback = 4 Pubrec = 5 Pubrel = 6 Pubcomp = 7 Subscribe = 8 Suback = 9 Unsubscribe = 10 Unsuback = 11 Pingreq = 12 Pingresp = 13 Disconnect = 14 )
Below are the constants assigned to each of the MQTT packet types
const ( Accepted = 0x00 ErrRefusedBadProtocolVersion = 0x01 ErrRefusedIDRejected = 0x02 ErrRefusedBadUsernameOrPassword = 0x04 ErrRefusedNotAuthorised = 0x05 ErrNetworkError = 0xFE ErrProtocolViolation = 0xFF )
Below are the const definitions for error codes returned by Connect()
Variables ¶
var ( ErrorRefusedBadProtocolVersion = errors.New("unacceptable protocol version") ErrorRefusedIDRejected = errors.New("identifier rejected") ErrorRefusedBadUsernameOrPassword = errors.New("bad user name or password") ErrorRefusedNotAuthorised = errors.New("not Authorized") ErrorNetworkError = errors.New("network Error") ErrorProtocolViolation = errors.New("protocol Violation") )
var ConnErrors = map[byte]error{ Accepted: nil, ErrRefusedBadProtocolVersion: ErrorRefusedBadProtocolVersion, ErrRefusedIDRejected: ErrorRefusedIDRejected, ErrRefusedServerUnavailable: ErrorRefusedServerUnavailable, ErrRefusedBadUsernameOrPassword: ErrorRefusedBadUsernameOrPassword, ErrRefusedNotAuthorised: ErrorRefusedNotAuthorised, ErrNetworkError: ErrorNetworkError, ErrProtocolViolation: ErrorProtocolViolation, }
ConnErrors is a map of the errors codes constants for Connect() to a Go error
var ConnackReturnCodes = map[uint8]string{
0: "Connection Accepted",
1: "Connection Refused: Bad Protocol Version",
2: "Connection Refused: Client Identifier Rejected",
3: "Connection Refused: Server Unavailable",
4: "Connection Refused: Username or Password in unknown format",
5: "Connection Refused: Not Authorised",
254: "Connection Error",
255: "Connection Refused: Protocol Violation",
}
ConnackReturnCodes is a map of the error codes constants for Connect() to a string representation of the error
var PacketNames = map[uint8]string{
1: "CONNECT",
2: "CONNACK",
3: "PUBLISH",
4: "PUBACK",
5: "PUBREC",
6: "PUBREL",
7: "PUBCOMP",
8: "SUBSCRIBE",
9: "SUBACK",
10: "UNSUBSCRIBE",
11: "UNSUBACK",
12: "PINGREQ",
13: "PINGRESP",
14: "DISCONNECT",
}
PacketNames maps the constants for each of the MQTT packet types to a string representation of their name.
Functions ¶
This section is empty.
Types ¶
type ConnackPacket ¶
type ConnackPacket struct { FixedHeader SessionPresent bool ReturnCode byte }
ConnackPacket is an internal representation of the fields of the Connack MQTT packet
func (*ConnackPacket) Details ¶
func (ca *ConnackPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*ConnackPacket) String ¶
func (ca *ConnackPacket) String() string
type ConnectPacket ¶
type ConnectPacket struct { FixedHeader ProtocolName string ProtocolVersion byte CleanSession bool WillFlag bool WillQos byte WillRetain bool UsernameFlag bool PasswordFlag bool ReservedBit byte Keepalive uint16 ClientIdentifier string WillTopic string WillMessage []byte Username string Password []byte }
ConnectPacket is an internal representation of the fields of the Connect MQTT packet
func (*ConnectPacket) Details ¶
func (c *ConnectPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*ConnectPacket) String ¶
func (c *ConnectPacket) String() string
func (*ConnectPacket) Unpack ¶
func (c *ConnectPacket) Unpack(b io.Reader) error
Unpack decodes the details of a ControlPacket after the fixed header has been read
func (*ConnectPacket) Validate ¶
func (c *ConnectPacket) Validate() byte
Validate performs validation of the fields of a Connect packet
type ControlPacket ¶
type ControlPacket interface { Write(io.Writer) error Unpack(io.Reader) error String() string Details() Details }
ControlPacket defines the interface for structs intended to hold decoded MQTT packets, either from being read or before being written
func NewControlPacket ¶
func NewControlPacket(packetType byte) ControlPacket
NewControlPacket is used to create a new ControlPacket of the type specified by packetType, this is usually done by reference to the packet type constants defined in packets.go. The newly created ControlPacket is empty and a pointer is returned.
func NewControlPacketWithHeader ¶
func NewControlPacketWithHeader(fh FixedHeader) (ControlPacket, error)
NewControlPacketWithHeader is used to create a new ControlPacket of the type specified within the FixedHeader that is passed to the function. The newly created ControlPacket is empty and a pointer is returned.
func ReadPacket ¶
func ReadPacket(r io.Reader) (ControlPacket, error)
ReadPacket takes an instance of an io.Reader (such as net.Conn) and attempts to read an MQTT packet from the stream. It returns a ControlPacket representing the decoded MQTT packet and an error. One of these returns will always be nil, a nil ControlPacket indicating an error occurred.
type Details ¶
Details struct returned by the Details() function called on ControlPackets to present details of the Qos and MessageID of the ControlPacket
type DisconnectPacket ¶
type DisconnectPacket struct {
FixedHeader
}
DisconnectPacket is an internal representation of the fields of the Disconnect MQTT packet
func (*DisconnectPacket) Details ¶
func (d *DisconnectPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*DisconnectPacket) String ¶
func (d *DisconnectPacket) String() string
type FixedHeader ¶
FixedHeader is a struct to hold the decoded information from the fixed header of an MQTT ControlPacket
func (FixedHeader) String ¶
func (fh FixedHeader) String() string
type PingreqPacket ¶
type PingreqPacket struct {
FixedHeader
}
PingreqPacket is an internal representation of the fields of the Pingreq MQTT packet
func (*PingreqPacket) Details ¶
func (pr *PingreqPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*PingreqPacket) String ¶
func (pr *PingreqPacket) String() string
type PingrespPacket ¶
type PingrespPacket struct {
FixedHeader
}
PingrespPacket is an internal representation of the fields of the Pingresp MQTT packet
func (*PingrespPacket) Details ¶
func (pr *PingrespPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*PingrespPacket) String ¶
func (pr *PingrespPacket) String() string
type PubackPacket ¶
type PubackPacket struct { FixedHeader MessageID uint16 }
PubackPacket is an internal representation of the fields of the Puback MQTT packet
func (*PubackPacket) Details ¶
func (pa *PubackPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*PubackPacket) String ¶
func (pa *PubackPacket) String() string
type PubcompPacket ¶
type PubcompPacket struct { FixedHeader MessageID uint16 }
PubcompPacket is an internal representation of the fields of the Pubcomp MQTT packet
func (*PubcompPacket) Details ¶
func (pc *PubcompPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*PubcompPacket) String ¶
func (pc *PubcompPacket) String() string
type PublishPacket ¶
type PublishPacket struct { FixedHeader TopicName string MessageID uint16 Payload []byte }
PublishPacket is an internal representation of the fields of the Publish MQTT packet
func (*PublishPacket) Copy ¶
func (p *PublishPacket) Copy() *PublishPacket
Copy creates a new PublishPacket with the same topic and payload but an empty fixed header, useful for when you want to deliver a message with different properties such as Qos but the same content
func (*PublishPacket) Details ¶
func (p *PublishPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*PublishPacket) String ¶
func (p *PublishPacket) String() string
type PubrecPacket ¶
type PubrecPacket struct { FixedHeader MessageID uint16 }
PubrecPacket is an internal representation of the fields of the Pubrec MQTT packet
func (*PubrecPacket) Details ¶
func (pr *PubrecPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*PubrecPacket) String ¶
func (pr *PubrecPacket) String() string
type PubrelPacket ¶
type PubrelPacket struct { FixedHeader MessageID uint16 }
PubrelPacket is an internal representation of the fields of the Pubrel MQTT packet
func (*PubrelPacket) Details ¶
func (pr *PubrelPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*PubrelPacket) String ¶
func (pr *PubrelPacket) String() string
type SubackPacket ¶
type SubackPacket struct { FixedHeader MessageID uint16 ReturnCodes []byte }
SubackPacket is an internal representation of the fields of the Suback MQTT packet
func (*SubackPacket) Details ¶
func (sa *SubackPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*SubackPacket) String ¶
func (sa *SubackPacket) String() string
type SubscribePacket ¶
type SubscribePacket struct { FixedHeader MessageID uint16 Topics []string Qoss []byte }
SubscribePacket is an internal representation of the fields of the Subscribe MQTT packet
func (*SubscribePacket) Details ¶
func (s *SubscribePacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*SubscribePacket) String ¶
func (s *SubscribePacket) String() string
type UnsubackPacket ¶
type UnsubackPacket struct { FixedHeader MessageID uint16 }
UnsubackPacket is an internal representation of the fields of the Unsuback MQTT packet
func (*UnsubackPacket) Details ¶
func (ua *UnsubackPacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*UnsubackPacket) String ¶
func (ua *UnsubackPacket) String() string
type UnsubscribePacket ¶
type UnsubscribePacket struct { FixedHeader MessageID uint16 Topics []string }
UnsubscribePacket is an internal representation of the fields of the Unsubscribe MQTT packet
func (*UnsubscribePacket) Details ¶
func (u *UnsubscribePacket) Details() Details
Details returns a Details struct containing the Qos and MessageID of this ControlPacket
func (*UnsubscribePacket) String ¶
func (u *UnsubscribePacket) String() string