Leaf-Server官方教程: Hello Leaf

现在,在 LeafServer 的基础上,我们来看看游戏服务器如何接收和处理网络消息。

首先定义一个 JSON 格式的消息(protobuf 类似)。打开 LeafServer msg/msg.go 文件可以看到如下代码:

package msg

import (
"github.com/name5566/leaf/network"
)

var Processor network.Processor

func init() {

}

Processor 为消息的处理器(可由用户自定义),这里我们使用 Leaf 默认提供的 JSON 消息处理器并尝试添加一个名字为 Hello 的消息:

package msg

import (
"github.com/name5566/leaf/network/json"
)

// 使用默认的 JSON 消息处理器(默认还提供了 protobuf 消息处理器)
var Processor = json.NewProcessor()

func init() {
// 这里我们注册了一个 JSON 消息 Hello
Processor.Register(&Hello{})
}

// 一个结构体定义了一个 JSON 消息的格式
// 消息名为 Hello
type Hello struct {
Name string
}

客户端发送到游戏服务器的消息需要通过 gate 模块路由,简而言之,gate 模块决定了某个消息具体交给内部的哪个模块来处理。这里,我们将 Hello 消息路由到 game 模块中。打开 LeafServer gate/router.go,敲入如下代码:



上一篇:数据中心硬件架构拆解分析


下一篇:社区leaf学习笔记|06. 游戏玩家注册、登陆(中)