Documentation
¶
Index ¶
- Constants
- func NewServer(configPath string) ziface.IServer
- type BaseRouter
- type ConnManager
- type Connection
- func (c *Connection) GetConnID() uint32
- func (c *Connection) GetProperty(key string) (interface{}, error)
- func (c *Connection) GetTcpConnection() *net.TCPConn
- func (c *Connection) RemoteAddr() net.Addr
- func (c *Connection) RemoveProperty(key string)
- func (c *Connection) SendMsg(msgId 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 Message
- type MsgHandler
- func (mh *MsgHandler) AddRouter(msgId uint32, router ziface.IRouter)
- func (mh *MsgHandler) DoMsgHandler(request ziface.IRequest)
- func (mh *MsgHandler) SendMsgToTaskQueue(request ziface.IRequest)
- func (mh *MsgHandler) StartOneWorker(workerID int, taskQueue chan ziface.IRequest)
- func (mh *MsgHandler) StartWorkerPool()
- type Request
- type Server
- func (s *Server) AddRouter(msgID uint32, router ziface.IRouter)
- func (s *Server) CallOnConnClose(connection ziface.IConnection)
- func (s *Server) CallOnConnStart(connection ziface.IConnection)
- func (s *Server) GetConnMgr() ziface.IConnManager
- func (s *Server) GetMsgHandler() ziface.IMsgHandler
- func (s *Server) Run()
- func (s *Server) SetOnConnClose(f func(connection ziface.IConnection))
- func (s *Server) SetOnConnStart(f func(connection ziface.IConnection))
- func (s *Server) Start()
- func (s *Server) Stop()
Constants ¶
const (
DefaultHeadLen = 8
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BaseRouter ¶
type BaseRouter struct{}
BaseRouter 实现router时候,先嵌入这个BaseRouter基类, 然后根据需要对这个基类的方法进行重写就行了 所以BaseRouter的方法都为空 是因为有些Router不需要PreHandle、PostHandle这两个业务
func (*BaseRouter) Handle ¶
func (br *BaseRouter) Handle(request ziface.IRequest)
Handle 在处理conn业务的主方法hook
func (*BaseRouter) PostHandle ¶
func (br *BaseRouter) PostHandle(request ziface.IRequest)
PostHandle 在处理conn业务之后的钩子方法Hook
func (*BaseRouter) PreHandle ¶
func (br *BaseRouter) PreHandle(request ziface.IRequest)
PreHandle 在处理conn业务之前的钩子方法Hook
type ConnManager ¶
type ConnManager struct {
// contains filtered or unexported fields
}
func (*ConnManager) AddConn ¶
func (connMgr *ConnManager) AddConn(conn ziface.IConnection)
AddConn 添加连接
func (*ConnManager) GetConn ¶
func (connMgr *ConnManager) GetConn(connID uint32) (ziface.IConnection, error)
GetConn 根据connID获取连接
func (*ConnManager) GetConnCount ¶
func (connMgr *ConnManager) GetConnCount() int
GetConnCount 得到当前连接总数
func (*ConnManager) RemoveConn ¶
func (connMgr *ConnManager) RemoveConn(conn ziface.IConnection)
RemoveConn 删除连接
type Connection ¶
type Connection struct { // 当前Conn属于哪个server TcpServer ziface.IServer // 当前连接的socket TCP套接字 Conn *net.TCPConn // 连接ID ConnID uint32 // 告知当前连接已经退出/停止的 channel ExitChan chan bool // 当前连接所绑定的处理业务方法Router MsgHandler ziface.IMsgHandler // contains filtered or unexported fields }
Connection 连接模块
func NewConnection ¶
NewConnection 初始化连接模块的方法
func (*Connection) GetProperty ¶
func (c *Connection) GetProperty(key string) (interface{}, error)
GetProperty 获取连接属性
func (*Connection) GetTcpConnection ¶
func (c *Connection) GetTcpConnection() *net.TCPConn
GetTcpConnection 获取当前连接的绑定的socket conn
func (*Connection) RemoteAddr ¶
func (c *Connection) RemoteAddr() net.Addr
RemoteAddr 获取远程客户端的 TCP状态 IP port
func (*Connection) RemoveProperty ¶
func (c *Connection) RemoveProperty(key string)
RemoveProperty 删除连接属性
func (*Connection) SendMsg ¶
func (c *Connection) SendMsg(msgId uint32, data []byte) error
SendMsg 提供一个SendMsg方法 将我们要发送给客户端的数据,先进行封包,再发送
func (*Connection) SetProperty ¶
func (c *Connection) SetProperty(key string, value interface{})
SetProperty 设置连接属性
type DataPack ¶
type DataPack struct { }
DataPack 封包、拆包的具体模块
type Message ¶
type Message struct {
// contains filtered or unexported fields
}
func (*Message) SetMsgBodyLen ¶
SetMsgBodyLen 设置消息体长度
type MsgHandler ¶
type MsgHandler struct { // 存放每个MsgID所对应的处理方法 Apis map[uint32]ziface.IRouter // 负责Worker取任务的消息队列 TaskQueue []chan ziface.IRequest // 业务工作Worker池的数量 WorkPoolSize uint32 }
func (*MsgHandler) AddRouter ¶
func (mh *MsgHandler) AddRouter(msgId uint32, router ziface.IRouter)
AddRouter 为消息添加具体的处理逻辑
func (*MsgHandler) DoMsgHandler ¶
func (mh *MsgHandler) DoMsgHandler(request ziface.IRequest)
DoMsgHandler 调度/执行对应的Router消息处理方法
func (*MsgHandler) SendMsgToTaskQueue ¶
func (mh *MsgHandler) SendMsgToTaskQueue(request ziface.IRequest)
SendMsgToTaskQueue 将消息交给TaskQueue, 由Worker进行管理
func (*MsgHandler) StartOneWorker ¶
func (mh *MsgHandler) StartOneWorker(workerID int, taskQueue chan ziface.IRequest)
StartOneWorker 启动一个Worker工作流程
func (*MsgHandler) StartWorkerPool ¶
func (mh *MsgHandler) StartWorkerPool()
StartWorkerPool 启动一个Worker工作池(开启工作池的动作只能发生一次,一个zinx框架只能有一个worker工作池)
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
func NewRequest ¶
func NewRequest(conn ziface.IConnection, msg ziface.IMessage) *Request
NewRequest creates a new request
func (*Request) GetConnection ¶
func (r *Request) GetConnection() ziface.IConnection
GetConnection 得到当前连接
type Server ¶
type Server struct { // 服务器名称 Name string // 服务器绑定的ip版本 IPVersion string // 服务器监听的IP IP string // 服务器监听的端口 Port int // 当前server的消息管理模块,用来绑定MsgID和对应的处理业务API关系 MsgHandler ziface.IMsgHandler // 该server的连接管理器 ConnMgr ziface.IConnManager // 该Server创建连接后自动调用的Hook函数-OnConnStart OnConnStart func(connection ziface.IConnection) // 该Server关闭连接后自动调用的Hook函数-OnConnClose OnConnClose func(connection ziface.IConnection) }
Server iServer的接口实现, 定义一个Server的服务器模块
func (*Server) CallOnConnClose ¶
func (s *Server) CallOnConnClose(connection ziface.IConnection)
CallOnConnClose 调用OnConnClose 钩子函数的方法
func (*Server) CallOnConnStart ¶
func (s *Server) CallOnConnStart(connection ziface.IConnection)
CallOnConnStart 调用OnConnStart 钩子函数的方法
func (*Server) GetConnMgr ¶
func (s *Server) GetConnMgr() ziface.IConnManager
GetConnMgr 获取当前Server的ConnMgr
func (*Server) GetMsgHandler ¶
func (s *Server) GetMsgHandler() ziface.IMsgHandler
GetMsgHandler 获取当前Server的ConnMgr
func (*Server) SetOnConnClose ¶
func (s *Server) SetOnConnClose(f func(connection ziface.IConnection))
SetOnConnClose 注册OnConnClose 钩子函数的方法
func (*Server) SetOnConnStart ¶
func (s *Server) SetOnConnStart(f func(connection ziface.IConnection))
SetOnConnStart 注册OnConnStar 钩子函数的方法