码迷,mamicode.com
首页 > 其他好文 > 详细

KBEngine实体间相互调用规则

时间:2020-03-27 23:14:19      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:cell   一个   远程   base   有一个   kbengine   client   规则   sea   

KBEngine服务端实体调用客户端实体方式是:

self.client.xxxMethod()

xxxMethod需要定义为实体客户端方法,这个很好理解,没有什么问题。

但是在服务端实体调用服务端实体的时候就需要特别注意两个实体是否有可能在不同的进程。

如果两个实体是在同一个进程的,可以直接调用方法,不需要定义为实体协议方法,而且可以获取返回值。

但如果两个实体是在不同的进程,需要将方法定义为实体协议方法,而且不能获取返回值,返回值永远都是None,因为这个调用过程是通过网络线程进行的远程方法调用,不可等待。

就比如baseapp和cellapp是两个进程,那么base实体和cell实体肯定是在不同的进程上的。

还有就是如果你开启了多个baseapp(或cellapp),那么base实体(或cell实体)之间也可能是在不同进程上的。

但如果你只有一个baseapp(或cellapp),那么base实体(或cell实体)肯定是在同一进程上的。

以上为个人学习经验分享,仅供参考

KBEngine实体间相互调用规则

标签:cell   一个   远程   base   有一个   kbengine   client   规则   sea   

原文地址:https://blog.51cto.com/14218068/2482549

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!