net

package
v0.0.0-...-592751c Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//默认包头长度
	DefaultPacketHeaderSize = int(unsafe.Sizeof(DefaultPacketHeader{}))
	MaxPacketDataSize       = 0x00FFFFFF
)

Variables

View Source
var ErrIncompletePacket = errors.New("incomplete packet")

Functions

This section is empty.

Types

type DefaultConnectionHandler

type DefaultConnectionHandler struct {
	//注册消息的处理函数
	PacketHandler map[PacketCommand]PacketHandler
	//解码
	Codec ProtoCodec
	// contains filtered or unexported fields
}

func (*DefaultConnectionHandler) Register

func (h *DefaultConnectionHandler) Register(packetCommand PacketCommand, handler PacketHandler, protoMessage proto.Message)

type DefaultPacketHeader

type DefaultPacketHeader struct {
	// (flags << 24) | len
	// flags [0,255)
	// len [0,16M)
	LenAndFlags uint32
}

func NewDefaultPacketHeader

func NewDefaultPacketHeader(len uint32, flags uint8) *DefaultPacketHeader

func (*DefaultPacketHeader) Flags

func (h *DefaultPacketHeader) Flags() uint8

标记

func (*DefaultPacketHeader) Len

func (h *DefaultPacketHeader) Len() uint32

包体长度

func (*DefaultPacketHeader) ReadFrom

func (h *DefaultPacketHeader) ReadFrom(packetHeaderData []byte)

读取长度

func (*DefaultPacketHeader) WriteTo

func (h *DefaultPacketHeader) WriteTo(PacketHeader []byte)

写入长度

type Packet

type Packet interface {
	Command() PacketCommand

	Message() proto.Message

	GetStreamData() []byte
}

type PacketCommand

type PacketCommand uint16

type PacketHandler

type PacketHandler func(c gnet.Conn, packet *ProtoPacket)

type PacketHeader

type PacketHeader interface {
	Len() uint32
	ReadFrom(packetHeaderData []byte)
	WriteTo(packetHeaderData []byte)
}

type ProtoCodec

type ProtoCodec struct {
	ProtoPacketBytesEncoder func(protoPacketBytes [][]byte) [][]byte

	ProtoPacketBytesDecoder func(packetData []byte) []byte

	MessageCreatorMap map[PacketCommand]reflect.Type
}

func NewProtoCodec

func NewProtoCodec(protoMessageTypeMap map[PacketCommand]reflect.Type) *ProtoCodec

func (*ProtoCodec) Decode

func (p *ProtoCodec) Decode(c gnet.Conn) (Packet, error)

func (*ProtoCodec) DecodePacket

func (p *ProtoCodec) DecodePacket(packetData []byte) Packet

func (*ProtoCodec) Encode

func (p *ProtoCodec) Encode(packet Packet) ([]byte, error)

func (*ProtoCodec) EncodePacket

func (p *ProtoCodec) EncodePacket(packet Packet) [][]byte

func (*ProtoCodec) Register

func (p *ProtoCodec) Register(command PacketCommand, protoMessage proto.Message)

type ProtoMessageCreator

type ProtoMessageCreator func() proto.Message

type ProtoPacket

type ProtoPacket struct {
	// contains filtered or unexported fields
}

func NewProtoPacket

func NewProtoPacket(command PacketCommand, message proto.Message) *ProtoPacket

func NewProtoPacketWithData

func NewProtoPacketWithData(command PacketCommand, data []byte) *ProtoPacket

func (*ProtoPacket) Command

func (p *ProtoPacket) Command() PacketCommand

func (*ProtoPacket) GetStreamData

func (p *ProtoPacket) GetStreamData() []byte

func (*ProtoPacket) Message

func (p *ProtoPacket) Message() proto.Message

type ProtoRegister

type ProtoRegister interface {
	Register(command PacketCommand, protoMessage proto.Message)
}

type TcpClient

type TcpClient struct {
	gnet.BuiltinEventEngine

	Client   *gnet.Client
	Conn     gnet.Conn
	Handler  DefaultConnectionHandler
	Network  string
	Addr     string
	Nclients int
	// contains filtered or unexported fields
}

func (*TcpClient) OnBoot

func (cli *TcpClient) OnBoot(eng gnet.Engine) (action gnet.Action)

func (*TcpClient) OnClose

func (cli *TcpClient) OnClose(c gnet.Conn, err error) (action gnet.Action)

func (*TcpClient) OnOpen

func (cli *TcpClient) OnOpen(c gnet.Conn) (out []byte, action gnet.Action)

func (*TcpClient) OnTraffic

func (cli *TcpClient) OnTraffic(c gnet.Conn) (action gnet.Action)

type TcpServer

type TcpServer struct {
	gnet.BuiltinEventEngine

	Handler   DefaultConnectionHandler
	Network   string
	Addr      string
	Multicore bool
	// contains filtered or unexported fields
}

func (*TcpServer) OnBoot

func (s *TcpServer) OnBoot(eng gnet.Engine) (action gnet.Action)

func (*TcpServer) OnClose

func (s *TcpServer) OnClose(c gnet.Conn, err error) (action gnet.Action)

func (*TcpServer) OnOpen

func (s *TcpServer) OnOpen(c gnet.Conn) (out []byte, action gnet.Action)

func (*TcpServer) OnTraffic

func (s *TcpServer) OnTraffic(c gnet.Conn) (action gnet.Action)

Jump to

Keyboard shortcuts

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