leaf源码分析(一)----chanrpc

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

本文公众号链接为:https://mp.weixin.qq.com/s/bzh3jZJkz96WxbPX4zF75A

 

 

 

Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。

 

阅读中文文档,其中介绍的是

 

leaf/chanrpc 提供了一套基于 channel 的 RPC 机制,用于游戏服务器模块间通讯。chanrpc提供了三种模式

  1. 同步模式,调用并等待 ChanRPC 返回

  2. 异步模式,调用并提供回调函数,回调函数会在 ChanRPC 返回后被调用

  3. 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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值