本文公众号链接为:https://mp.weixin.qq.com/s/bzh3jZJkz96WxbPX4zF75A
Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。
阅读中文文档,其中介绍的是
leaf/chanrpc 提供了一套基于 channel 的 RPC 机制,用于游戏服务器模块间通讯。chanrpc提供了三种模式
-
同步模式,调用并等待 ChanRPC 返回
-
异步模式,调用并提供回调函数,回调函数会在 ChanRPC 返回后被调用
-
Go 模式,调用并立即返回,忽略任何返回值和错误
那么下面看源码
源码目录为:

先看看github.com/name5566/leaf/chanrpc/example_test.go,里面演示了chanrpc的具体用法
chanrpc分为server和client两个部分

以上代码中是server的一个过程
1、初始化了一个server。
2、接着,注册了server提供的rpc函数。rpc支持三种类型
func([]interface{}) 参数为[]interface,无返回值
func([]interface{}) interface{} 参数为[]interface,返回值为interface
func([]interface{}) []interface{} 参数为[]interface,返回值为[]interface
3、最后server开启Exec执行rpc函数

以上为client过程
1、创建了client
2、同步调用。提供了集中调用方法。可以根据返回值分类来记忆:
Call0,Call1,CallN


本文详细分析了Leaf游戏服务器框架中的chanrpc组件,它提供了一套基于channel的RPC机制,用于游戏服务器模块间的同步、异步和Go模式通讯。介绍了chanrpc的基本数据结构、Server和Client的实现细节,以及各种调用模式的工作原理。同时,讨论了源码中的关键函数如Register、Exec、Call和异步处理等,帮助读者理解Leaf框架的内部工作流程。
最低0.47元/天 解锁文章
666

被折叠的 条评论
为什么被折叠?



