Documentation ¶
Index ¶
- Constants
- func Marshal(msg *Message, gzipStatus int32) []byte
- type Connection
- func (c *Connection) Addr() string
- func (c *Connection) Close() <-chan bool
- func (c *Connection) CloseConnection() <-chan bool
- func (c *Connection) GetSessionID() int64
- func (c *Connection) IsAlive() bool
- func (c *Connection) IsReading() bool
- func (c *Connection) IsWriting() bool
- func (c *Connection) Push(MsgID int32, value interface{}) error
- func (c *Connection) SetGzip(status int32)
- func (c *Connection) SetSessionID(sessionid int64)
- func (c *Connection) Write(msg *Message) error
- type Context
- func (ctx *Context) Conn() *Connection
- func (ctx *Context) Continue()
- func (ctx *Context) GetKV(key string) interface{}
- func (ctx *Context) GetResponse() interface{}
- func (ctx *Context) HasResponsed() bool
- func (ctx *Context) Message() *Message
- func (ctx *Context) ReadJSON(value interface{}) error
- func (ctx *Context) Response(value interface{})
- func (ctx *Context) SetKV(key string, value interface{})
- func (ctx *Context) Write() error
- type Head
- type Message
- type Party
- type Proc
- type Routine
- type Server
Constants ¶
const (
// HeadLen 为了免于计算 实时与Head结构对应
HeadLen = 20
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Connection ¶
type Connection struct { OnConnectionClosed func(int64) // 参数是sessionID // contains filtered or unexported fields }
Connection 封装后的连接对象,内部封装了 net.Conn 对象
func (*Connection) Close ¶ added in v1.0.5
func (c *Connection) Close() <-chan bool
Close 主动关闭连接 返回 pendingQuit channel,当 Connection 完成关闭操作后此 pendingQuit 也会被关闭 主动关闭从先关闭发送消息缓冲队列 writeChan 开始 写线程在将 writeChan 中已有的消息全部发送之后,关闭底层连接 然后读线程会产生读错误退出,退出时进行清理工作,并且关闭 pendingQuit channel
func (*Connection) CloseConnection ¶
func (c *Connection) CloseConnection() <-chan bool
[Deprecated]主动关闭连接
func (*Connection) GetSessionID ¶
func (c *Connection) GetSessionID() int64
GetSessionID 获取SessionID
func (*Connection) IsReading ¶ added in v1.0.5
func (c *Connection) IsReading() bool
func (*Connection) IsWriting ¶ added in v1.0.5
func (c *Connection) IsWriting() bool
func (*Connection) SetSessionID ¶
func (c *Connection) SetSessionID(sessionid int64)
SetSessionID 设置SessionID
type Context ¶
Context 网络通信的上下文
func (*Context) Continue ¶
func (ctx *Context) Continue()
Continue 此消息上下文是否继续执行 Routine 在中间件中必须调用此方法,才能继续执行后续中间件以及消息处理器 如果在中间件中提前向客户端返回并退出时则不需要再调用此方法 在消息处理其中不能调用此方法
func (*Context) GetResponse ¶ added in v0.1.5
func (ctx *Context) GetResponse() interface{}
GetResponse 获取已经写入的应答消息
func (*Context) HasResponsed ¶ added in v0.1.6
HasResponsed 此Context是否已经发送过应答了。一个Context只能发送一次应答
type Head ¶
type Head struct { // 消息长度,包括自身在内 Len int32 // 消息协议ID,用于表示消息的类型 ID int32 // 请求编号,客户端生成的请求流水号,在请求的应答里原样返回,用于识别应答与请求的对应关系,客户端生成的流水号不可以为0 // 如果是推送通知类消息,此字段固定为0。 ReqID int32 // 时间戳 Timestap int32 // 协议版本号 Version int32 }
Head 消息头
type Party ¶
type Party struct {
// contains filtered or unexported fields
}
Party 消息协议组
func (*Party) RegisterProc ¶
RegisterProc 注册消息处理路由
type Server ¶
type Server struct { sync.RWMutex OnNewConn func(*Connection) OnRecvMessage func(*Context) OnRespMessage func(*Context, *Message) ReadBuffSize int // 与客户端的通信的读缓冲区初始长度 ReadBuffSizeMax int // 与客户端的通信的读缓冲区最大长度 ReadTimeoutInitial int // TCP连接建立后首次read的超时时间 ReadTimeout int // read超时时间 // contains filtered or unexported fields }
Server : 管理服务器的网络层
func (*Server) CloseConnections ¶
CloseConnections 关闭服务器已建立的全部连接
func (*Server) DefaultProc ¶
DefaultProc 向TCP服务注册默认消息处理路由,不能在路由表中查到的消息ID会交给默认消息路由处理
func (*Server) RegisterProc ¶
RegisterProc 向TCP服务的默认消息组注册消息处理路由,默认消息组名字为空