View Source
const (
	Request  Type = 0x00
	Notify        = 0x01
	Response      = 0x02
	Push          = 0x03

    Message types


    View Source
    var (
    	ErrWrongMessageType  = errors.New("wrong message type")
    	ErrInvalidMessage    = errors.New("invalid message")
    	ErrRouteInfoNotFound = errors.New("route info not found in dictionary")
    	ErrWrongMessage      = errors.New("wrong message")

      Errors that could be occurred in message codec


      func Encode

      func Encode(m *Message) ([]byte, error)

        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:

        func Serialize

        func Serialize(v interface{}) ([]byte, error)

        func SetDictionary

        func SetDictionary(dict map[string]uint16)

          SetDictionary set routes map which be used to compress route. TODO(warning): set dictionary in runtime would be a dangerous operation!!!!!!


          type Message

          type Message struct {
          	Type  Type   // message type
          	ID    uint64 // 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

            func Decode(data []byte) (*Message, error)

              Decode unmarshal the bytes slice to a message See ref:

              func New

              func New() *Message

                New returns a new message instance

                func (*Message) Encode

                func (m *Message) Encode() ([]byte, error)

                  Encode marshals message to binary format.

                  func (*Message) String

                  func (m *Message) String() string

                    String, implementation of fmt.Stringer interface

                    type Type

                    type Type byte

                      Type represents the type of message, which could be Request/Notify/Response/Push

                      func (Type) String

                      func (t Type) String() string

                      Source Files