本文主要是介绍leaf源码分析(一)----chanrpc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文公众号链接为: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、同步调用。提供了集中调用方法。可以根据返回值分类来记忆:
Call
这篇关于leaf源码分析(一)----chanrpc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!