Znet

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

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

Go to latest
Published: Mar 19, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultIp   = "127.0.0.1"
	DefaultPort = 8080
)

Variables

This section is empty.

Functions

func NewServer

func NewServer() Zinterface.ServerI

Types

type BaseRouter

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

实现路由时,此为基础中间件

func NewBaseRouter

func NewBaseRouter(text string) *BaseRouter

func (BaseRouter) Handle

func (r BaseRouter) Handle(request Zinterface.RequestI)

func (BaseRouter) PostHandle

func (r BaseRouter) PostHandle(request Zinterface.RequestI)

func (BaseRouter) PreHandle

func (r BaseRouter) PreHandle(request Zinterface.RequestI)

type Client

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

func NewClient

func NewClient(ip string, port int) *Client

func (*Client) AddRouter

func (c *Client) AddRouter(msgId uint32, r Zinterface.RouterI)

func (*Client) CallAfterConnect

func (c *Client) CallAfterConnect(i Zinterface.ConnectionI)

func (*Client) CallBeforeConnect

func (c *Client) CallBeforeConnect(i Zinterface.ConnectionI)

func (*Client) CallBeforeStop

func (c *Client) CallBeforeStop(i Zinterface.ConnectionI)

func (*Client) Conn

func (c *Client) Conn() Zinterface.ConnectionI

func (*Client) GetManager

func (c *Client) GetManager() Zinterface.ManagerI

func (*Client) GetMsgHandle

func (c *Client) GetMsgHandle() Zinterface.MsgHandleI

func (*Client) SendMessage

func (c *Client) SendMessage(id uint32, s string)

func (*Client) Serve

func (c *Client) Serve()

func (*Client) SetAfterConnect

func (c *Client) SetAfterConnect(f Zinterface.ConnectionFunc)

func (*Client) SetBeforeConnect

func (c *Client) SetBeforeConnect(f Zinterface.ConnectionFunc)

func (*Client) SetBeforeStop

func (c *Client) SetBeforeStop(f Zinterface.ConnectionFunc)

func (*Client) Start

func (c *Client) Start()

func (*Client) Stop

func (c *Client) Stop()

type Connection

type Connection struct {
	TcpServer Zinterface.ServerI
	//Client Zinterface.ClientI
	Conn     *net.TCPConn
	ConnID   uint64
	IsClosed bool
	//HandleApi Zinterface.HandleFunc
	Handler Zinterface.MsgHandleI
	//连接的配置和读写锁
	Property      map[string]interface{}
	PropertyMutex sync.RWMutex
	//告知当前连接以及停止
	StopChan  chan bool
	WriteChan chan []byte
	//有缓发送区
	WriteBufChan chan []byte
}

func NewConnection

func NewConnection(server Zinterface.ServerI, conn *net.TCPConn, coonId uint64, handler Zinterface.MsgHandleI) *Connection

func (*Connection) GetConnID

func (c *Connection) GetConnID() uint64

func (*Connection) GetManager

func (c *Connection) GetManager() Zinterface.ManagerI

func (*Connection) GetProperty

func (c *Connection) GetProperty(key string) (interface{}, error)

获取链接属性

func (*Connection) GetRemoteAddr

func (c *Connection) GetRemoteAddr() net.Addr

func (*Connection) GetTcpConnection

func (c *Connection) GetTcpConnection() *net.TCPConn

func (*Connection) RemoveProperty

func (c *Connection) RemoveProperty(key string)

移除链接属性

func (*Connection) Send

func (c *Connection) Send(messageId uint32, data []byte) error

func (*Connection) SendBuff

func (c *Connection) SendBuff(messageId uint32, data []byte) error

func (*Connection) SetProperty

func (c *Connection) SetProperty(key string, value interface{})

设置链接属性

func (*Connection) Start

func (c *Connection) Start()

func (*Connection) StartReader

func (c *Connection) StartReader()

启动读写业务

func (*Connection) StartWriter

func (c *Connection) StartWriter()

func (*Connection) Stop

func (c *Connection) Stop()

type DataPack

type DataPack struct {
}
var DefaultDataPack *DataPack

func (*DataPack) GetHeadLen

func (p *DataPack) GetHeadLen() uint32

func (*DataPack) Pack

func (p *DataPack) Pack(msg Zinterface.MessageI) ([]byte, error)

func (*DataPack) UnPack

func (p *DataPack) UnPack(data []byte) (Zinterface.MessageI, error)

type HandleRouter

type HandleRouter struct{}

func (HandleRouter) Handle

func (HandleRouter) Handle(requestInterface Zinterface.RequestI)

func (HandleRouter) PostHandle

func (HandleRouter) PostHandle(requestInterface Zinterface.RequestI)

func (HandleRouter) PreHandle

func (HandleRouter) PreHandle(requestInterface Zinterface.RequestI)

type Manager

type Manager struct {
	MaxConn   int
	ConnCount int
	// contains filtered or unexported fields
}

func NewManager

func NewManager() *Manager

func (*Manager) Add

func (m *Manager) Add(c Zinterface.ConnectionI) error

func (*Manager) Clear

func (m *Manager) Clear() error

func (*Manager) Get

func (m *Manager) Get(id uint64) (Zinterface.ConnectionI, error)

func (*Manager) GetCount

func (m *Manager) GetCount() int

func (*Manager) Remove

func (m *Manager) Remove(id uint64) error

func (*Manager) Size

func (m *Manager) Size() int

func (*Manager) UpdateLru

func (m *Manager) UpdateLru()

func (*Manager) UseLru

func (m *Manager) UseLru(id uint64) error

type Message

type Message struct {
	Data      []byte
	DataLen   uint32
	MessageId uint32
}

|DataLen**|MessageID|Data| |***4Byte*|**4Byte**|

func NewMessage

func NewMessage(data []byte, id uint32) *Message

func (*Message) GetData

func (m *Message) GetData() []byte

func (*Message) GetDataLen

func (m *Message) GetDataLen() uint32

func (*Message) GetMessageId

func (m *Message) GetMessageId() uint32

func (*Message) SetData

func (m *Message) SetData(data []byte)

func (*Message) SetDataLen

func (m *Message) SetDataLen(len uint32)

func (*Message) SetMessageId

func (m *Message) SetMessageId(id uint32)

type MsgHandler

type MsgHandler struct {
	MsgRouterMap map[uint32]Zinterface.RouterI //每个消息id对应一个Router
	MaxPoolSize  int
	TaskQueue    []chan Zinterface.RequestI //[workerId]chan,通过向chan中放request找到对应的worker
	// contains filtered or unexported fields
}

根据收到的不同的消息id调用不同的Router进行处理

func NewMsgHandler

func NewMsgHandler(maxPoolSize, maxTaskSize int) *MsgHandler

func NewMsgHandlerByConfig

func NewMsgHandlerByConfig() *MsgHandler

func (*MsgHandler) AddRouter

func (h *MsgHandler) AddRouter(id uint32, r Zinterface.RouterI) error

func (*MsgHandler) Close

func (h *MsgHandler) Close()

func (*MsgHandler) Handle

func (h *MsgHandler) Handle(r Zinterface.RequestI) error

func (*MsgHandler) SendMessage

func (h *MsgHandler) SendMessage(r Zinterface.RequestI)

func (*MsgHandler) StartWorker

func (h *MsgHandler) StartWorker(ctx context.Context, workerId int, taskChan chan Zinterface.RequestI, bucket *rate.Limiter)

func (*MsgHandler) StartWorkerPool

func (h *MsgHandler) StartWorkerPool(ctx context.Context)

type Request

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

func (*Request) GetConnection

func (r *Request) GetConnection() Zinterface.ConnectionI

func (*Request) GetData

func (r *Request) GetData() []byte

func (*Request) GetMessageID

func (r *Request) GetMessageID() uint32

type Server

type Server struct {
	//服务器名
	Name string

	//端口号
	Port int
	//路由与消息
	Handler *MsgHandler
	// contains filtered or unexported fields
}

func (*Server) AddRouter

func (s *Server) AddRouter(msgId uint32, router Zinterface.RouterI)

func (*Server) CallAfterConnect

func (s *Server) CallAfterConnect(c Zinterface.ConnectionI)

func (*Server) CallBeforeConnect

func (s *Server) CallBeforeConnect(c Zinterface.ConnectionI)

func (*Server) CallBeforeStop

func (s *Server) CallBeforeStop(c Zinterface.ConnectionI)

func (*Server) GetManager

func (s *Server) GetManager() Zinterface.ManagerI

func (*Server) Serve

func (s *Server) Serve()

func (*Server) SetAfterConnect

func (s *Server) SetAfterConnect(f Zinterface.ConnectionFunc)

func (*Server) SetBeforeConnect

func (s *Server) SetBeforeConnect(f Zinterface.ConnectionFunc)

func (*Server) SetBeforeStop

func (s *Server) SetBeforeStop(f Zinterface.ConnectionFunc)

func (*Server) Start

func (s *Server) Start()

func (*Server) Stop

func (s *Server) Stop()

Jump to

Keyboard shortcuts

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