83 lines
1.7 KiB
Go

package rocommon
import (
"time"
)
//代表多种类型
type ServerNode interface {
//开启服务器
Start() ServerNode
Stop()
//tcpConnector / tcpAcceptor
TypeOfName() string
}
type ServerNodeProperty interface {
GetName() string //ServerName gate/game/db
SetName(s string)
GetAddr() string
SetAddr(s string)
SetQueue(v NetEventQueue)
Queue() NetEventQueue
SetServerType(t int)
ServerType() int
SetZone(t int)
GetZone() int
SetIndex(t int)
GetIndex() int
}
//session管理接口
type SessionMagExport interface {
GetSession(uint64) Session
SessionNum() int
CloseAllSession()
SetUuidCreateKey(genKey int)
}
//socketOption socketOption.go
type TCPSocketOption interface {
SetSocketBuff(read, write int, noDelay bool)
SetMaxMsgLen(size int)
SetSocketDeadline(read, write time.Duration)
}
type MySqlOption interface {
SetConnCount(val int)
}
//NetProcessorRPC procrpc.go
type ProcessorRPCBundle interface {
SetTransmitter(v MessageProcessor)
SetHooker(v EventHook)
SetCallback(v EventCallBack)
}
//tcpConnector暴露的对外接口
type TCPConnector interface {
TCPSocketOption
SetReconnectTime(delta time.Duration)
Session() Session
}
//tcpAcceptor暴露的对外接口
type TCPAcceptor interface {
TCPSocketOption
SessionMagExport
}
//NetContextSet nodeproperty.go
type ContextSet interface {
//绑定自定义属性
SetContextData(key, value interface{}, from string)
//获得key对应的属性
GetContextData(key interface{}) (interface{}, bool)
//根据给定类型获取数据
RawContextData(key interface{}, valuePtr interface{}) bool //sid(etcd期间使用) ctx(连接成功后服务器之间使用)
}
type HTTPConnector interface {
Request(method, path string, param *HTTPRequest) error
}