codec

package
v0.1.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2021 License: BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VersionV1         = 1
	V1HeaderSize      = 14        // 包头大小
	V1MaxPayloadBytes = 60 * 1024 // 60K
)
View Source
const (
	VersionV2         = 2
	V2HeaderSize      = 20              // 包头大小
	V2MaxPayloadBytes = 8 * 1024 * 1024 // 8M
)

Variables

View Source
var V1CompressThreshold = 4096 // 默认压缩阈值,4K
View Source
var V2CompressThreshold = 4096 // 默认压缩阈值,4K

Functions

func MarshalV1

func MarshalV1(w io.Writer, pkt fatchoy.IPacket, encryptor cipher.BlockCryptor) (int, error)

内部除了flag不应该修改pkt的其它字段

func MarshalV2

func MarshalV2(w io.Writer, pkt fatchoy.IPacket, encryptor cipher.BlockCryptor) (int, error)

内部除了flag不应该修改pkt的其它字段

func ReadLenData

func ReadLenData(r io.Reader) ([]byte, error)

读取2字节开头的数据

func ReadPacketV1

func ReadPacketV1(r io.Reader, decrypt cipher.BlockCryptor, pkt fatchoy.IPacket) error

读取一个packet

func ReadPacketV2

func ReadPacketV2(r io.Reader, decrypt cipher.BlockCryptor, pkt fatchoy.IPacket) error

读取一个packet

func UnmarshalV1

func UnmarshalV1(head V1Header, payload []byte, decrypt cipher.BlockCryptor, pkt fatchoy.IPacket) error

解码消息到pkt

func UnmarshalV2

func UnmarshalV2(head V2Header, payload []byte, decrypt cipher.BlockCryptor, pkt fatchoy.IPacket) error

解码消息到pkt

func WriteLenData

func WriteLenData(w io.Writer, data []byte) (int, error)

写入2字节开头的数据

func WritePacketV1

func WritePacketV1(w io.Writer, encrypt cipher.BlockCryptor, pkt fatchoy.IPacket) (int, error)

写入一个packet

func WritePacketV2

func WritePacketV2(w io.Writer, encrypt cipher.BlockCryptor, pkt fatchoy.IPacket) (int, error)

写入一个packet

Types

type V1Header

type V1Header []byte

func ReadV1

func ReadV1(r io.Reader) (V1Header, []byte, error)

从r读取消息到pkt,并按需使用decrypt解密,返回读取长度和错误

func (V1Header) CalcChecksum

func (h V1Header) CalcChecksum(payload []byte) uint32

校验码包含head和body

func (V1Header) Checksum

func (h V1Header) Checksum() uint32

CRC校验码

func (V1Header) Command

func (h V1Header) Command() int32

func (V1Header) Flag

func (h V1Header) Flag() uint8

标记位

func (V1Header) Len

func (h V1Header) Len() uint16

长度包含头部和body

func (V1Header) MD5Sum added in v0.1.8

func (h V1Header) MD5Sum() string

func (V1Header) Pack

func (h V1Header) Pack(pkt fatchoy.IPacket, size uint16)

func (V1Header) Seq

func (h V1Header) Seq() uint16

session内的唯一序号

func (V1Header) SetChecksum

func (h V1Header) SetChecksum(crc uint32)

func (V1Header) Type

func (h V1Header) Type() uint8

标记位

type V2Header

type V2Header []byte

func ReadV2

func ReadV2(r io.Reader) (V2Header, []byte, error)

从r读取消息到pkt,并按需使用decrypt解密,返回读取长度和错误

func (V2Header) CalcChecksum

func (h V2Header) CalcChecksum(refer, payload []byte) uint32

校验码包含head和body

func (V2Header) Checksum

func (h V2Header) Checksum() uint32

CRC校验码

func (V2Header) Command

func (h V2Header) Command() int32

func (V2Header) Flag

func (h V2Header) Flag() uint8

标记位

func (V2Header) Len

func (h V2Header) Len() uint32

长度包含头部和body

func (V2Header) MD5Sum

func (h V2Header) MD5Sum() string

func (V2Header) Node

func (h V2Header) Node() fatchoy.NodeID

func (V2Header) Pack

func (h V2Header) Pack(pkt fatchoy.IPacket, nRef uint8, size uint32)

func (V2Header) RefCount

func (h V2Header) RefCount() uint8

标记位

func (V2Header) Seq

func (h V2Header) Seq() uint16

session内的唯一序号

func (V2Header) SetChecksum

func (h V2Header) SetChecksum(crc uint32)

func (V2Header) Type

func (h V2Header) Type() uint8

类型

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL