Documentation ¶
Index ¶
- Constants
- func NewServer() Zinterface.ServerI
- type BaseRouter
- type Client
- func (c *Client) AddRouter(msgId uint32, r Zinterface.RouterI)
- func (c *Client) CallAfterConnect(i Zinterface.ConnectionI)
- func (c *Client) CallBeforeConnect(i Zinterface.ConnectionI)
- func (c *Client) CallBeforeStop(i Zinterface.ConnectionI)
- func (c *Client) Conn() Zinterface.ConnectionI
- func (c *Client) GetManager() Zinterface.ManagerI
- func (c *Client) GetMsgHandle() Zinterface.MsgHandleI
- func (c *Client) SendMessage(id uint32, s string)
- func (c *Client) Serve()
- func (c *Client) SetAfterConnect(f Zinterface.ConnectionFunc)
- func (c *Client) SetBeforeConnect(f Zinterface.ConnectionFunc)
- func (c *Client) SetBeforeStop(f Zinterface.ConnectionFunc)
- func (c *Client) Start()
- func (c *Client) Stop()
- type Connection
- func (c *Connection) GetConnID() uint64
- func (c *Connection) GetManager() Zinterface.ManagerI
- func (c *Connection) GetProperty(key string) (interface{}, error)
- func (c *Connection) GetRemoteAddr() net.Addr
- func (c *Connection) GetTcpConnection() *net.TCPConn
- func (c *Connection) RemoveProperty(key string)
- func (c *Connection) Send(messageId uint32, data []byte) error
- func (c *Connection) SendBuff(messageId uint32, data []byte) error
- func (c *Connection) SetProperty(key string, value interface{})
- func (c *Connection) Start()
- func (c *Connection) StartReader()
- func (c *Connection) StartWriter()
- func (c *Connection) Stop()
- type DataPack
- type HandleRouter
- type Manager
- func (m *Manager) Add(c Zinterface.ConnectionI) error
- func (m *Manager) Clear() error
- func (m *Manager) Get(id uint64) (Zinterface.ConnectionI, error)
- func (m *Manager) GetCount() int
- func (m *Manager) Remove(id uint64) error
- func (m *Manager) Size() int
- func (m *Manager) UpdateLru()
- func (m *Manager) UseLru(id uint64) error
- type Message
- type MsgHandler
- func (h *MsgHandler) AddRouter(id uint32, r Zinterface.RouterI) error
- func (h *MsgHandler) Close()
- func (h *MsgHandler) Handle(r Zinterface.RequestI) error
- func (h *MsgHandler) SendMessage(r Zinterface.RequestI)
- func (h *MsgHandler) StartWorker(ctx context.Context, workerId int, taskChan chan Zinterface.RequestI, ...)
- func (h *MsgHandler) StartWorkerPool(ctx context.Context)
- type Request
- type Server
- func (s *Server) AddRouter(msgId uint32, router Zinterface.RouterI)
- func (s *Server) CallAfterConnect(c Zinterface.ConnectionI)
- func (s *Server) CallBeforeConnect(c Zinterface.ConnectionI)
- func (s *Server) CallBeforeStop(c Zinterface.ConnectionI)
- func (s *Server) GetManager() Zinterface.ManagerI
- func (s *Server) Serve()
- func (s *Server) SetAfterConnect(f Zinterface.ConnectionFunc)
- func (s *Server) SetBeforeConnect(f Zinterface.ConnectionFunc)
- func (s *Server) SetBeforeStop(f Zinterface.ConnectionFunc)
- func (s *Server) Start()
- func (s *Server) Stop()
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 (*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 (*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)
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) SetProperty ¶
func (c *Connection) SetProperty(key string, value interface{})
设置链接属性
func (*Connection) Start ¶
func (c *Connection) Start()
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 ¶
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 ¶
func NewManager ¶
func NewManager() *Manager
func (*Manager) Add ¶
func (m *Manager) Add(c Zinterface.ConnectionI) error
func (*Manager) Get ¶
func (m *Manager) Get(id uint64) (Zinterface.ConnectionI, error)
type Message ¶
|DataLen**|MessageID|Data| |***4Byte*|**4Byte**|
func NewMessage ¶
func (*Message) GetDataLen ¶
func (*Message) GetMessageId ¶
func (*Message) SetDataLen ¶
func (*Message) SetMessageId ¶
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) GetMessageID ¶
type Server ¶
type Server struct { //服务器名 Name string //端口号 Port int //路由与消息 Handler *MsgHandler // contains filtered or unexported fields }
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) 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)
Click to show internal directories.
Click to hide internal directories.