hiface

package
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2022 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ITcpConnManager

type ITcpConnManager interface {
	// 添加链接
	Add(conn ITcpConnection)
	// 删除连接
	Remove(conn ITcpConnection)
	// 利用ConnID获取链接
	Get(connID int64) (ITcpConnection, error)
	// 获取当前连接
	Len() int
	// 删除并停止所有连接
	ClearConn()
}

ITcpConnManager Tcp连接管理抽象层

type ITcpConnection

type ITcpConnection interface {
	// 启动连接,让当前连接开始工作
	Start()
	// 停止连接,结束当前连接状态
	Stop()
	// 从当前连接获取原始的Socket TCPConn
	GetTCPConnection() *net.TCPConn
	// 获取当前连接ID(会话ID)
	GetConnID() int64
	// 获取远程客户端地址信息
	RemoteAddr() net.Addr
	// 设置连接属性
	SetProperty(key string, value interface{})
	// 获取连接属性
	GetProperty(key string) (interface{}, error)
	// 移除连接属性
	RemoveProperty(key string)
	// SendTcpPkg 发送tcp数据包
	//  @pkgBodyType 数据类型
	//  @pkg         数据内容(自定义结构体对象)
	//  @userBuf     是否启动缓冲(默认关闭)
	SendTcpPkg(pkgBodyType byte, pkg interface{}, userBuf ...bool) error
}

type ITcpPkg

type ITcpPkg interface {

	// 获取数据包消息头长度
	GetPkgHeadLen() int16
	// 获取请求数据包
	GetPkg() []byte
	// 获取数据包消息体内容
	GetPkgBody() []byte
	// 获取路由(即消息处理器)
	GetHandlerRouter() string
	// 封包方法
	Pack() ([]byte, error)
	// 拆包方法
	Unpack(conn io.Reader) (ITcpPkg, error)
}

type ITcpPkgHandle

type ITcpPkgHandle interface {
	// 马上以非阻塞方式处理数据包
	DoPkgHandler(request ITcpRequest)
	// 为数据包添加具体的处理逻辑
	AddRouter(handlerRouter string, router ITcpRouter)
	// 启动worker工作池
	StartWorkerPool()
	// 将数据包交给TaskQueue,由worker进行处理
	SendPkgToTaskQueue(request ITcpRequest)
}

ITcpPkgHandle 消息管理抽象层

type ITcpRequest

type ITcpRequest interface {
	// 获取请求连接信息
	GetConnection() ITcpConnection
	// 获取请求数据包
	GetPkg() []byte
	// 获取请求数据(场景:1、解密后的数据包内容 2、真正的消息体)
	GetPkgBody() []byte
	// 获取请求路由
	GetHandlerRouter() string
}

type ITcpRouter

type ITcpRouter interface {
	// 在处理conn业务之前的钩子方法
	PreHandle(request ITcpRequest)
	// 处理conn业务的方法
	Handle(request ITcpRequest)
	// 处理conn业务之后的钩子方法
	PostHandle(request ITcpRequest)
}

ITcpRouter 路由接口,自定义处理业务方法

type ITcpServer

type ITcpServer interface {
	// 启动服务器方法
	Start()
	// 停止服务器方法
	Stop()
	// 开启业务服务方法
	Serve()
	// 路由功能:给当前服务注册一个路由业务方法,供客户端连接处理使用
	AddRouter(handlerRouter string, router ITcpRouter)
	// 获取连接管理
	GetConnMgr() ITcpConnManager
	// 设置该Server的连接创建时Hook函数
	SetOnConnStart(func(ITcpConnection))
	// 设置该Server的连接断开时的Hook函数
	SetOnConnStop(func(ITcpConnection))
	// 调用连接OnConnStart Hook函数
	CallOnConnStart(conn ITcpConnection)
	// 调用连接OnConnStop Hook函数
	CallOnConnStop(conn ITcpConnection)
}

ITcpServer 定义服务器接口

Jump to

Keyboard shortcuts

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