-
Notifications
You must be signed in to change notification settings - Fork 2
gate
liangmanlin edited this page Apr 13, 2021
·
2 revisions
一个简略的网关服务,帮助你快速搭建游戏服务器。
gate.Start(name string, handler *kernel.Actor, port int, opt ...interface{})
//启动后,handler的HandleCast回调函数会收到一个bool类型的cast消息,标志可以开始接收网络数据
HandleCast = func(context *kernel.Context, msg interface{}) {
t := (*global.TcpClientState)(context.State)
switch m := msg.(type) {
case bool:
doLogin(t, context)
default:
kernel.ErrorLog("un handle msg: %#v", m)
}
}
如此简单你就可以启动一个网关服务器。
是的展开说明的是如下api:
(c *Conn) StartReader(dest *kernel.Pid)
调用该api后,网络数据会以异步方式发送到目标进程,数据结构为:[]byte
(c *Conn) StartReaderDecode(dest *kernel.Pid,decoder func([]byte)(int,interface{}))
调用该api后,网络数据会以异步方式发送到目标进程,不同的是,会调用decoder函数先进行解包,这样的好处是,减少重复分配buffer的消耗。
接收方,会收到:gate.Pack
消息。