Documentation ¶
Index ¶
Constants ¶
const ( HeadLength = 1 MaxPacketSize = 1 << 24 //16MB )
Codec constants.
Variables ¶
var ErrPacketSizeExcced = errors.New("codec: packet size exceed")
ErrPacketSizeExcced is the error used for encode/decode.
Functions ¶
func BytesToInt ¶
BytesToInt decode packet data length byte to int(Big end)
func IntToBytes ¶
IntToBytes encode packet data length to bytes(Big end)
Types ¶
type PacketDecoder ¶
type PacketDecoder interface { Decode(data []byte) ([]*packet.Packet, error) DecodeProto(data []byte) ([]*pbProto.Packet, error) }
PacketDecoder interface
type PacketEncoder ¶
PacketEncoder interface
type PomeloPacketDecoder ¶
type PomeloPacketDecoder struct{}
PomeloPacketDecoder reads and decodes network data slice following pomelo's protocol
func NewPomeloPacketDecoder ¶
func NewPomeloPacketDecoder() *PomeloPacketDecoder
NewPomeloPacketDecoder returns a new decoder that used for decode network bytes slice.
func (*PomeloPacketDecoder) Decode ¶
func (c *PomeloPacketDecoder) Decode(data []byte) ([]*packet.Packet, error)
Decode decode the network bytes slice to packet.Packet(s)
func (*PomeloPacketDecoder) DecodeProto ¶
func (c *PomeloPacketDecoder) DecodeProto(data []byte) ([]*pbProto.Packet, error)
Decode decode the network bytes slice to packet.Packet(s)
type PomeloPacketEncoder ¶
type PomeloPacketEncoder struct { }
PomeloPacketEncoder struct
func NewPomeloPacketEncoder ¶
func NewPomeloPacketEncoder() *PomeloPacketEncoder
NewPomeloPacketEncoder ctor
func (*PomeloPacketEncoder) Encode ¶
Encode create a packet.Packet from the raw bytes slice and then encode to network bytes slice Protocol refs: https://github.com/NetEase/pomelo/wiki/Communication-Protocol
-<type>-|--------<length>--------|-<data>- --------|------------------------|-------- 1 byte packet type, 3 bytes packet data length(big end), and data segment