Skip to content
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 消息。

Clone this wiki locally