protocol

package
v0.0.0-...-1c24e16 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrTypeInvalid = "E_INVALID"
)

Variables

This section is empty.

Functions

func ReadFrameData

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

读取包含frameType的data

func SendFrameData

func SendFrameData(w io.Writer, frameType int32, data []byte) error

发送包含frameType的data

func TCPServer

func TCPServer(listener net.Listener, handler TCPHandler) error

Types

type Client

type Client interface {
	Close() error
}

type FatalClientErr

type FatalClientErr struct {
	Err  error
	Code string
	Desc string
}

func NewFatalClientErr

func NewFatalClientErr(err error, code, desc string) *FatalClientErr

func (*FatalClientErr) Error

func (f *FatalClientErr) Error() string

type Message

type Message struct {
	ID        MessageID
	Timestamp int64
	Attempts  uint16
	Body      []byte
}

func DecodeMessage

func DecodeMessage(b []byte) (*Message, error)

解析字节流为Message结构体 数据格式:timestamp(8byte) + attempts(2byte) + messageID(16byte) + body

func (*Message) Bytes

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

构造message数据流

type MessageID

type MessageID [common.MsgIDLength]byte

func GetMessageID

func GetMessageID(p []byte) (MessageID, error)

type Protocol

type Protocol interface {
	NewClient(net.Conn) Client
	IOLoop(Client) error
}

type TCPHandler

type TCPHandler interface {
	Handle(net.Conn)
}

Jump to

Keyboard shortcuts

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