Documentation ¶
Index ¶
Constants ¶
const ( Request Type = 0x00 Notify = 0x01 Response = 0x02 Push = 0x03 )
Message types
Variables ¶
var ( ErrWrongMessageType = errors.New("wrong message type") ErrInvalidMessage = errors.New("invalid message") ErrRouteInfoNotFound = errors.New("route info not found in dictionary") )
Errors that could be occurred in message codec
Functions ¶
func Encode ¶
Encode marshals message to binary format. Different message types is corresponding to different message header, message types is identified by 2-4 bit of flag field. The relationship between message types and message header is presented as follows: ------------------------------------------ | type | flag | other | |----------|--------|--------------------| | request |----000-|<message id>|<route>| | notify |----001-|<route> | | response |----010-|<message id> | | push |----011-|<route> | ------------------------------------------ The figure above indicates that the bit does not affect the type of message. See ref: https://github.com/lonnng/nano/blob/master/docs/communication_protocol.md
func SetDictionary ¶
SetDictionary set routes map which be used to compress route. TODO(warning): set dictionary in runtime would be a dangerous operation!!!!!!
Types ¶
type Message ¶
type Message struct { Type Type // message type ID uint // unique id, zero while notify mode Route string // route for locating service Data []byte // payload // contains filtered or unexported fields }
Message represents a unmarshaled message or a message which to be marshaled
func Decode ¶
Decode unmarshal the bytes slice to a message See ref: https://github.com/lonnng/nano/blob/master/docs/communication_protocol.md