server

package
v0.0.0-...-135b9b9 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2019 License: GPL-3.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateNewUID

func CreateNewUID() (uint64, error)

CreateNewUID 生成新的UID

func GetValidSrvPort

func GetValidSrvPort(minPort, maxPort int) string

GetValidSrvPort 根据传入的最小端口和最大端口号,找一个可用端口,返回一个可用来绑定的地址

func NewServer

func NewServer(srvType uint8, srvID uint64, addr string, outerAddr string, fps int, srvCtrl IServerCtrl) iserver.IServer

NewServer 创建一个新的服务器

Types

type IDFetcher

type IDFetcher struct {
	// contains filtered or unexported fields
}

IDFetcher 获取唯一的TempID号

func (*IDFetcher) FetchTempID

func (srv *IDFetcher) FetchTempID() uint64

FetchTempID 获取一个唯一ID

type IServerCtrl

type IServerCtrl interface {
	Init() error
	MainLoop()
	Destroy()

	GetLoad() int

	OnServerConnect(srvID uint64, serverType uint8)

	GetEntities(cellID uint64) iserver.IEntities
}

IServerCtrl 后代服务器类需要继承的接口

type Server

type Server struct {
	*SrvNet
	*serverMgr.LoadUpdater
	*entity.ProtoType
	*entity.Entities
	*IDFetcher
	// contains filtered or unexported fields
}

Server 服务器

func (*Server) Close

func (srv *Server) Close()

Close 关闭服务器

func (*Server) ConfigHTTPAdmin

func (srv *Server) ConfigHTTPAdmin(addr string, port uint64, admin string)

ConfigHTTPAdmin 配置控制台相关

func (*Server) GetEntities

func (srv *Server) GetEntities(cellID uint64) iserver.IEntities

func (*Server) GetFrameDeltaTime

func (srv *Server) GetFrameDeltaTime() time.Duration

GetFrameDeltaTime 获取每帧间的间隔

func (*Server) GetLoad

func (srv *Server) GetLoad() int

GetLoad 获取服务器负载信息, 取CPU和内存的大值

func (*Server) GetStartupTime

func (srv *Server) GetStartupTime() time.Time

GetStartupTime 获取服务器启动时间

func (*Server) HandleCommand

func (srv *Server) HandleCommand(c []string) *admin.CmdResp

HandleCommand 控制台接口

func (*Server) HandlerSrvInvalid

func (srv *Server) HandlerSrvInvalid(entityID uint64)

HandlerSrvInvalid 处理服务不可用

func (*Server) IsSrvValid

func (srv *Server) IsSrvValid() bool

IsSrvValid 服务是否可用

func (*Server) MainLoop

func (srv *Server) MainLoop()

MainLoop 主循环

func (*Server) OnServerConnect

func (srv *Server) OnServerConnect(srvID uint64, serverType uint8)

func (*Server) Run

func (srv *Server) Run()

Run 逻辑入口

type SrvNet

type SrvNet struct {
	// contains filtered or unexported fields
}

SrvNet 建立一个服务器的网关结构

func NewSrvNet

func NewSrvNet(srvType uint8, srvID uint64, addr string, outerAddr string) *SrvNet

NewSrvNet 创建一个新的服务器网

func (*SrvNet) GetCurSrvInfo

func (srv *SrvNet) GetCurSrvInfo() *iserver.ServerInfo

GetSrvInfo 获取服务器信息

func (*SrvNet) GetSrvAddr

func (srv *SrvNet) GetSrvAddr() string

GetSrvAddr 获取服务器内网地址

func (*SrvNet) GetSrvID

func (srv *SrvNet) GetSrvID() uint64

GetSrvID 获取服务器ID

func (*SrvNet) GetSrvIDBySrvType

func (srv *SrvNet) GetSrvIDBySrvType(srvType uint8) (uint64, error)

GetSrvIDBySrvType 获取一个SrvID

func (*SrvNet) GetSrvType

func (srv *SrvNet) GetSrvType() uint8

GetSrvType 获取服务器类型

func (*SrvNet) GetToken

func (srv *SrvNet) GetToken() string

GetToken 获取服务器token

func (*SrvNet) MainLoop

func (srv *SrvNet) MainLoop()

MainLoop 主循环

func (*SrvNet) MsgProc_ClientVertifySucceedRet

func (srv *SrvNet) MsgProc_ClientVertifySucceedRet(content msgdef.IMsg)

MsgProc_ClientVertifySucceedRet 连入其它服务器

func (*SrvNet) MsgProc_SessClosed

func (srv *SrvNet) MsgProc_SessClosed(content interface{})

MsgProc_SessClosed 会话关闭

func (*SrvNet) MsgProc_SessVertified

func (srv *SrvNet) MsgProc_SessVertified(content interface{})

MsgProc_SessVertified 连接已经验证通过

func (*SrvNet) PostMsgToCell

func (srv *SrvNet) PostMsgToCell(srvID uint64, cellID uint64, msg msgdef.IMsg) error

PostMsgToCell 将消息投递给某个Cell

func (*SrvNet) PostMsgToSrv

func (srv *SrvNet) PostMsgToSrv(srvID uint64, msg msgdef.IMsg) error

PostMsgToSrv 根据srvID号把消息投递到相应的服务器上

func (*SrvNet) RefreshSrvInfo

func (srv *SrvNet) RefreshSrvInfo()

RefreshSrvInfo 刷新当前服务器信息, 最多一秒钟调用一次, 防止服务器同时拉起时大量重复请求

Jump to

Keyboard shortcuts

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