Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IConnManager ¶
type IConnManager interface { Add(conn IConnection) //添加链接 Remove(conn IConnection) //删除连接 Get(connID uint64) (IConnection, bool) //利用ConnID获取链接 Len() int //连接数 GetOvertimeConn(overtimeSecond float64) []IConnection //获取超时未上数据的连接 ClearConn() //删除并停止所有链接 }
连接管理接口
type IConnection ¶
type IConnection interface { GetNetConn() interface{} //获取连接(udp获取到的是监听的连接,tcp获取的是真正的客户端连接) GetConnId() uint64 //获取客户端ID GetRemoteAddr() net.Addr //获取远程客户端地址信息 GetLocalAddr() net.Addr //获取本地地址 GetHeartTime() time.Time //心跳时间 SendData(data []byte) error //发送消息到客户端 SendDataCall(data []byte, param interface{}, callFunc func(IConnection, bool, interface{}, error)) error //发送消息到客户端带回调 SetProperty(key string, value interface{}) //设置链接属性 GetProperty(key string) (interface{}, error) //获取链接属性 RemoveProperty(key string) //移除链接属性 GetPackCount() int64 //当前包数 GetBytesCache() *bytes.Buffer //分包内容数据缓存 CallLogHandle(level ErrLevel, msgAry ...interface{}) //设置内部异常抛出处理 Start() //启动连接,让当前连接开始工作 Stop() //停止连接,结束当前连接状态 OnCompleted(data []byte, offset int, count int) //接收到一次数据(未分包开始处理不确定是否完成) OnReceiveCompleted(data []byte) //数据上传一包完成 }
连接的接口
type IReceiver ¶
type IReceiver interface { IsMeHandle(conn IConnection, buffer []byte) (isMe bool) //是否处理 Receiver(conn IConnection, buffer []byte) ([]byte, int, bool) //分包处理[处理一包后跳出] }
分包器
type IService ¶
type IService interface { Start() //启动服务器方法 Stop() //停止服务器方法 GetConnMgr() IConnManager //得到链接管理 GetConn(connId uint64) (IConnection, bool) //获取连接 SetLogHandle(func(level ErrLevel, msg string)) //设置内部异常抛出处理 SetCreateReceiver(hookFunc func(IConnection, []byte) []IReceiver) //设置分包处理方法(支持TCP,UDP都是上传完整数据包不需要分包) SetOnConnStart(hookFunc func(IConnection)) //设置连接结束处理方法 SetOnConnStop(hookFunc func(IConnection)) //设置连接开始处理方法 SetOnReceiveCompleted(hookFunc func(IConnection, []byte)) //连接上传一包完整数据(连接,上行数据) SetOnReplyCompleted(hookFunc func(IConnection, []byte, interface{}, bool, error)) //设置下发回调(连接,下发数据,下发数据时带的参数,是否成功,异常信息) GetTotalQueueCount() (receiveCount int32, replyCount int32) //获取处理队列和下发队列剩余数 }
定义服务器接口
Click to show internal directories.
Click to hide internal directories.