Documentation ¶
Overview ¶
Package coap provides a CoAP client and server.
Index ¶
- Constants
- Variables
- func ListenAndServe(n, addr string, rh Handler) error
- func Serve(listener *net.UDPConn, rh Handler) error
- func Transmit(l *net.UDPConn, a *net.UDPAddr, m Message) error
- type COAPCode
- type COAPType
- type Conn
- type Handler
- type MediaType
- type Message
- func (m *Message) AddOption(opID OptionID, val interface{})
- func (m Message) IsConfirmable() bool
- func (m *Message) MarshalBinary() ([]byte, error)
- func (m Message) Option(o OptionID) interface{}
- func (m Message) Options(o OptionID) []interface{}
- func (m Message) Path() []string
- func (m Message) PathString() string
- func (m *Message) RemoveOption(opID OptionID)
- func (m *Message) SetOption(opID OptionID, val interface{})
- func (m *Message) SetPath(s []string)
- func (m *Message) SetPathString(s string)
- func (m *Message) UnmarshalBinary(data []byte) error
- type OptionID
- type ServeMux
- type TcpMessage
Constants ¶
const ( // ResponseTimeout is the amount of time to wait for a // response. ResponseTimeout = time.Second * 2 // ResponseRandomFactor is a multiplier for response backoff. ResponseRandomFactor = 1.5 // MaxRetransmit is the maximum number of times a message will // be retransmitted. MaxRetransmit = 4 )
Variables ¶
var ( ErrInvalidTokenLen = errors.New("invalid token length") ErrOptionTooLong = errors.New("option is too long") ErrOptionGapTooLarge = errors.New("option gap too large") )
Message encoding errors.
Functions ¶
func ListenAndServe ¶
ListenAndServe binds to the given address and serve requests forever.
Types ¶
type COAPCode ¶
type COAPCode uint8
COAPCode is the type used for both request and response codes.
const ( Created COAPCode = 65 Deleted COAPCode = 66 Valid COAPCode = 67 Changed COAPCode = 68 Content COAPCode = 69 BadRequest COAPCode = 128 BadOption COAPCode = 130 Forbidden COAPCode = 131 NotFound COAPCode = 132 MethodNotAllowed COAPCode = 133 NotAcceptable COAPCode = 134 PreconditionFailed COAPCode = 140 RequestEntityTooLarge COAPCode = 141 UnsupportedMediaType COAPCode = 143 InternalServerError COAPCode = 160 NotImplemented COAPCode = 161 BadGateway COAPCode = 162 GatewayTimeout COAPCode = 164 ProxyingNotSupported COAPCode = 165 )
Response Codes
type COAPType ¶
type COAPType uint8
COAPType represents the message type.
const ( // Confirmable messages require acknowledgements. Confirmable COAPType = 0 // NonConfirmable messages do not require acknowledgements. NonConfirmable COAPType = 1 // Acknowledgement is a message indicating a response to confirmable message. Acknowledgement COAPType = 2 // Reset indicates a permanent negative acknowledgement. Reset COAPType = 3 )
type MediaType ¶
type MediaType uint16
MediaType specifies the content type of a message.
const ( TextPlain MediaType = 0 // text/plain;charset=utf-8 AppLinkFormat MediaType = 40 // application/link-format AppXML MediaType = 41 // application/xml AppOctets MediaType = 42 // application/octet-stream AppExi MediaType = 47 // application/exi AppJSON MediaType = 50 // application/json )
Content types.
type Message ¶
type Message struct { Type COAPType Code COAPCode MessageID uint16 Token, Payload []byte // contains filtered or unexported fields }
Message is a CoAP message.
func ParseMessage ¶
ParseMessage extracts the Message from the given input.
func (Message) IsConfirmable ¶
IsConfirmable returns true if this message is confirmable.
func (*Message) MarshalBinary ¶
MarshalBinary produces the binary form of this Message.
func (Message) PathString ¶
PathString gets a path as a / separated string.
func (*Message) RemoveOption ¶
RemoveOption removes all references to an option
func (*Message) SetPathString ¶
SetPathString sets a path by a / separated string.
func (*Message) UnmarshalBinary ¶
UnmarshalBinary parses the given binary slice as a Message.
type OptionID ¶
type OptionID uint8
OptionID identifies an option in a message.
const ( IfMatch OptionID = 1 URIHost OptionID = 3 ETag OptionID = 4 IfNoneMatch OptionID = 5 Observe OptionID = 6 URIPort OptionID = 7 LocationPath OptionID = 8 URIPath OptionID = 11 ContentFormat OptionID = 12 MaxAge OptionID = 14 URIQuery OptionID = 15 Accept OptionID = 17 LocationQuery OptionID = 20 ProxyURI OptionID = 35 ProxyScheme OptionID = 39 Size1 OptionID = 60 )
Option IDs.
type ServeMux ¶
type ServeMux struct {
// contains filtered or unexported fields
}
ServeMux provides mappings from a common endpoint to handlers by request path.
type TcpMessage ¶
type TcpMessage struct {
Message
}
TcpMessage is a CoAP Message that can encode itself for TCP transport.
func Decode ¶
func Decode(r io.Reader) (*TcpMessage, error)
Decode reads a single message from its input.
func (*TcpMessage) MarshalBinary ¶
func (m *TcpMessage) MarshalBinary() ([]byte, error)
func (*TcpMessage) UnmarshalBinary ¶
func (m *TcpMessage) UnmarshalBinary(data []byte) error