在之前的章节中一直提到EntityCall,那什么是EntityCall?我们可以简单的理解为:封装远程交互、通讯等方法的一种对象,是脚本层与实体远程交互的常规手段。

EntityCall的底层实现原理:

EntityCall对象在C++底层实现非常简单,它只包含了实体的ID、目的地的地址、实体类型、EntityCall类型。

当用户请求一次远程交互时,底层首先能够通过实体类型找到实体定义的描述(def配置文件),通过该描述对用户输入的数据进行检查,如果检查合法那么底层将数据打包并发往目的地,接着目的地进程根据协议进行解包,根据实体ID找到实体,最终调用到脚本层。

EntityCall的限制或要求:

刚才在底层实现原理中提到,必须先通过实体类型找到实体定义的描述,而这个描述即是def配置文件!相当于互相之间的远程通讯都通过def“协议”规定好的。所以EntityCall只能:

1:调用其对应def配置文件中声明过的方法;

2:def配置中的属性不可被访问;

3:在def定义之外的任何信息都不可被访问。

一个实体包含哪些EntityCall?

一个实体最多可以包含三个部分:

1.client:

当实体包含客户端部分时(通常为玩家),在服务器端可以访问实体的client属性,该属性是一个EntityCall。

2.base:

当实体的一部分创建在Baseapp(如Baseapp A)时,在非当前Baseapp(如Baseapp B、Cellapp C等)中可以访问实体的base属性,该属性是一个EntityCall。

2.cell:

当实体的一部分创建在Cellapp(如Cellapp A)时,在非当前Cellapp(如Cellapp B、Baseapp C等)中可以访问实体的cell属性,该属性是一个EntityCall。

kbengine源码_KBEngine源码:EntityCall相关推荐

  1. kbengine源码_KBEngine源码:组件方案

    相对于skynet,KBEngine提供了完整的组件方案. Loginapp 登录验证.注册.Client的接入口. Baseapp 通过Loginapp分配过来的Client会与Baseapp保持连 ...

  2. kbengine源码_kbengine mmo源码(完整服务端源码+资源+完整客户端源码)

    本项目作为kbengine服务端引擎的客户端演示而写 更新kbengine插件库(https://github.com/kbengine/kbengine_unity3d_plugins):    * ...

  3. 游戏服务端引擎(kbengine完整代码+demo源码)

    2019独角兽企业重金招聘Python工程师标准>>> Demo: Ogre. Demo: Unity3d. PyConsole: display server informatio ...

  4. java 头尾 队列_源码|jdk源码之栈、队列及ArrayDeque分析

    栈.队列.双端队列都是非常经典的数据结构.和链表.数组不同,这三种数据结构的抽象层次更高.它只描述了数据结构有哪些行为,而并不关心数据结构内部用何种思路.方式去组织. 本篇博文重点关注这三种数据结构在 ...

  5. Flink源码分析 - 源码构建

    本篇文章首发于头条号Flink源码分析 - 源码构建,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的C ...

  6. Dapper源码学习和源码修改(下篇)

    继上篇Dapper源码学习和源码修改 讲了下自己学习Dapper的心得之后,下篇也随之而来,上篇主要讲的入参解析那下篇自然主打出参映射了. 好了,废话不多说,开始吧. 学习之前你的先学习怎么使用Dap ...

  7. [Android源码]Android源码之高仿飞鸽传书WIFI热点搜索与创建(一)

    (本文详情来源:android源码 http://www.eoeandroid.com/thread-296427-1-1.html   转载请注明出处!)  [Android源码分享]飞鸽传书的An ...

  8. java字节码文件加密_java 字节码加密源码

    java 字节码加密源码 java 2021-2-16 下载地址 https://www.codedown123.com/73152.html java 字节码加密源码,实现对class加密解密 资源 ...

  9. HTML五合一收款码网站源码(带35套模板)

    简介: HTML五合一收款码网站源码(带35套模板)是一款基于HTML开发制作的多码合一收款码生成网站源码,支持wx支付,支付宝支付,手机扣扣支付,京东钱包,百度钱包,五合一收款,将其二维码合并为一个 ...

最新文章

  1. 【转】对random_state参数的理解
  2. 【C++】 C++标准模板库(八) MultiMaps
  3. SpringMVC +Hibernate 学习实例
  4. Canada Cup 2016 C. Hidden Word 字符串构造
  5. c java 系统开发_java开发系统内核:使用C语言开发系统应用程序
  6. c语言函数能改变指针吗,如何修改传递给C中函数的指针?
  7. MySQL分区表概述
  8. Centos7安装Nginx实战
  9. DenyHosts安装及配置
  10. java内部类_Java内部类
  11. 学习笔记(4):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-深度学习“四件套”:数据、模型、损失函数与优化器...
  12. 爬取贝壳租房信息存储到mongoDB
  13. 《私募股权基金投资基础知识》---第五章
  14. 第二章 年轻人都是富翁
  15. Python OpenCV 图像缩放 cv2.resize 方法
  16. 你能说更多关于崩坏3琪亚娜的细节吗
  17. kali2021安装GVM(openVAS)
  18. 旧佳人的伤感非主流空间心情日志发布:想念,是一种忧伤的幸福
  19. nginx之配置文件解读及虚拟主机配置
  20. 直接插入法(java实现)

热门文章

  1. git的基本信息以及基本使用
  2. Simulink仿真模式
  3. linux ps 命令s意义,Linux ps 命令 简介
  4. Property使用
  5. 基于Elasticsearch的搜索优化
  6. android snackbar源码,android Snackbar
  7. grpc 报错 rpc: the client connection is closing
  8. jsbridge实现及原理_JsBridge使用和原理
  9. uWSGI日志每日分割
  10. 我的名义上的第一篇博客