Gonet2 游戏服务器框架解析之Agent(3)

客户端消息在Agent中的预处理流程。

Agent定义好的三种请求:

//api.go

var RCode = map[int16]string{

0: "heart_beat_req", // 心跳包..

1: "heart_beat_ack", // 心跳包回复

10: "user_login_req", // 登陆

11: "user_login_succeed_ack", // 登陆成功

12: "user_login_faild_ack", // 登陆失败

13: "client_error_ack", // 客户端错误

30: "get_seed_req", // socket通信加密使用

31: "get_seed_ack", // socket通信加密使用

}

上面这段是 api.go中截取的,定义了协议号和对应消息的名称。

以req结尾的是请求,ack结尾的是回复。

`//api.go

var Handlers map[int16]func(*Session, *packet.Packet) []byte

func init() {

Handlers = map[int16]func(*Session, *packet.Packet) []byte{

0: P_heart_beat_req,

10: P_user_login_req,

30: P_get_seed_req,

}

}

`

还是在api.go中,定义了与请求对应的处理方法,这些方法记录在Handlers中。方法的定义在文件client_handler/handle.go中。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-27 19:26:09

Gonet2 游戏服务器框架解析之Agent(3)的相关文章

Gonet2 游戏服务器框架解析之Agent(1)

Gonet2是一个用Go语言实现的游戏服务器端框架,github上面的网址请点击点击打开链接. Agent的启动流程以及连接处理. 版权声明:本文为博主原创文章,未经博主允许不得转载.

Gonet2 游戏服务器框架解析之gRPC入门(4)

Gonet2中,大量使用了gRPC,而对这个我不熟,所以这里花点时间了解一下.当然,环境我已经配好了,这里只是讲代码上如何使用,环境的搭建,网上应该蛮多.不过用gRPC要用科学的方式上网,这个对我华厦民族的同胞们,应该都不陌生了. 远程调用,一开始我想的很复杂,但是真的了解过之后,无非是,server side提供一个开方的接口,公开调用时传送数据的格式,client side遵照这种规定,调用接口提供的方法. 问题来了,既然是远程,那肯定是跨进程,甚至是跨计算机.所以可以通过网络传输的方式来远

Gonet2 游戏服务器框架解析之gRPC提高(5)

上一篇blog是关于gRPC框架的基本使用,如果说gRPC只是远程发几个参数,那和一个普通的http请求也没多大差别了.所以今天我就来学习一下gRPC高级一点的使用方法.流! 流可以根据使用方法,分为单向和双向: 单向 – Client->Server – Server->Client 双向 – Client<=>Server 下面是一个新的例子,参数表示一块地,而返回的是这块地上面的建筑.与上一篇不同的地方在于,返回类型前面加多了一个限定词 stream,这表示结果将以流的形式返

Gonet2 游戏server框架解析之gRPC提高(5)

上一篇blog是关于gRPC框架的基本使用,假设说gRPC仅仅是远程发几个參数,那和一个普通的http请求也没多大区别了. 所以今天我就来学习一下gRPC高级一点的用法. 流! 流能够依据用法,分为单向和双向: 单向 – Client->Server – Server->Client 双向 – Client<=>Server 以下是一个新的样例,三种服务分别使用了几种流服务方式: 1. 參数表示一块地.而返回的是这块地上面的建筑. 2. client不停的发送新的点.最后在服务端构

Leaf - 一个由 Go 语言编写的开发效率和执行效率并重的开源游戏服务器框架

转自:https://toutiao.io/posts/0l7l7n/preview Leaf 游戏服务器框架简介 Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架.Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器. Leaf 的关注点: 良好的使用体验.Leaf 总是尽可能的提供简洁和易用的接口,尽可能的提升开发的效率 稳定性.Leaf 总是尽可能的恢复运行过程中的错误,避免崩溃 多核支持.Leaf 通过模块机制和 leaf

教你从头写游戏服务器框架

本文由云+社区发表 作者:韩伟 前言 大概已经有差不多一年没写技术文章了,原因是今年投入了一些具体游戏项目的开发.这些新的游戏项目,比较接近独立游戏的开发方式.我觉得公司的"祖传"服务器框架技术不太适合,所以从头写了一个游戏服务器端的框架,以便获得更好的开发效率和灵活性.现在项目将近上线,有时间就想总结一下,这样一个游戏服务器框架的设计和实现过程. 这个框架的基本运行环境是 Linux ,采用 C++ 编写.为了能在各种环境上运行和使用,所以采用了 gcc 4.8 这个"古老

腾讯高级工程师:如何从头开始写游戏服务器框架_转

转自: 腾讯高级工程师:如何从头开始写游戏服务器框架 本文作者:韩伟,腾讯互娱高级工程师,目前在 Next 产品中心研发创新类型游戏. 前言:从去年开始作者投入了一些具体游戏项目的开发,这些新的游戏项目,比较接近独立游戏的开发方式.在这个过程中,作者从头写了一个游戏服务器端的框架,以便获得更好的开发效率和灵活性.因此这篇文章便是该项目服务器框架的设计和实现过程的总结. PS:框架的基本运行环境是 Linux ,采用 C++ 编写.为了能在各种环境上运行和使用,采用了 gcc4.8 这个“古老”的

游戏服务器框架:Leaf/go

Leaf 是一个使用 Go 语言开发的开源游戏服务器框架,注重运行效率并追求极致的开发效率.Leaf 适用于几乎所有的游戏类型.其主要的特性: 良好的使用体验.Leaf 总是尽可能的提供简洁和易用的接口,尽可能的提升开发的效率 稳定性.Leaf 总是尽可能的恢复运行过程中的错误,避免崩溃 多核支持.Leaf 通过模块机制和 leaf/go 尽可能的利用多核资源,同时又尽量避免各种副作用 良好的模块支持. 一个 Leaf 开发的游戏服务器由多个模块组成(例如 LeafServer),模块有以下特点

【前言】为什么要设计游戏服务器框架

设计游戏服务器框架: 项目设定周期:7月1日 - 12月31日 项目语言:PHP.Golang 项目成果: 1.PHP版游戏服务器框架 2.Golang版游戏服务器框架 设计目的: 1.挑战自己的毅力,遇到困难,勇敢面对解决 2.学习未涉及的领域和技术