zoukankan      html  css  js  c++  java
  • firefly服务器间通信演示

    源地址:http://www.9miao.com/question-15-54560.html

    最近好多童鞋都在问firefly几个服务器之间是如何通信的,其实在之前的distributed使用文档中有过了相关的介绍(本文可结合那篇文档一起查看,更容易理解)。一个最简单的游戏服务器,肯定包括net(负责同客户端连接,将客户端消息传给gate处理)、gate(负责将客户端的请求分配到对应的逻辑服务器中)和scene(场景服务器,游戏中主要的逻辑计算都在此服务器中)。我们将net和scene称为node服务器,gate称为root服务器,下面就node与root之间的交互进行一个简单的演示(本文中的代码都可在附件中下载到)。

    1.创建工程
    命令行下输入firefly-admin.py createproject test_distributed(linux在终端输入),
    <ignore_js_op>


    firefly会在该目录中创建一个名为test_distributed的工程
    <ignore_js_op>



    2.导入工程
    将工程导入到eclipse中
    <ignore_js_op>



    3.配置参数
    配置config.json中的相应参数
    <ignore_js_op>


    具体参数含义和配置说明详见:http://bbs.9miao.com/forum.php?m ... 6orderby%3Ddateline

    4.编写代码
    在上面填写的server配置的app对应路径下分别建立root.py和node.py。
    root.py:
    <ignore_js_op>


    第8行,使用rootserviceHandle方法修饰自定义的供node调用的方法returnData_1001。rootserviceHandle方法为firefly内部定义好的方法(建议去看看firefly源码),可直接调用,具体作用为修饰root服务器中可供node服务器调用的方法,没有被rootserviceHandle修饰的方法,node服务器不可调用
    第13行,调用node服务器的printData_1002方法,参数为data
    第24行,result为调用node服务器的subNu_1004方法(参数为a,b)发回的延迟对象
    第26行,当延迟对象的结果返回后,将返回的结果作为参数传递到printResult方法中
    第29行,10秒后执行test方法,参数为100和50
    <ignore_js_op>


    第8行,使用remoteserviceHandle方法修饰自定义的供root调用的方法returnData_1001。rootserviceHandle方法也是firefly内部定义好的方法,具体作用为修饰node服务器中可供root服务器调用的方法,没有被remoteserviceHandle修饰的方法,root服务器不可调用
    第18行,5秒后调用root服务器的returnData_1001方法,参数为后面的字符串
    ※运行这个工程后,第5秒,node会去调用root服务器中的returnData_1001这个方法,returnData_1001会打印出node传来的字符串并将此字符串作为参数传递给node服务器中的printData_1002方法,printData_1002将此字符串打印出来,这就完成了一个完整的交互。第10秒,root会调用node服务器的subNu_1004方法(参数为100,50),并打印出得出的结果。

    5.运行startmaster.py
    <ignore_js_op>


    红线部分为node调用root的方法returnData_1001的结果,蓝线部分为root调用node的方法printData_1002的结果,粉色部分为root调用node的方法subNu_1004的结果。

     
  • 相关阅读:
    【BZOJ2749】【HAOI2012】外星人[欧拉函数]
    【BZOJ3675】【APIO2014】序列分割 [斜率优化DP]
    【BZOJ2326】【HNOI2011】数学作业 [矩阵乘法][DP]
    【BZOJ1996】【HNOI2010】合唱队 [区间DP]
    【BZOJ1857】【SCOI2010】传送带 [三分]
    【BZOJ2338】【HNOI2011】数矩形 [计算几何]
    【BZOJ2330】【SCOI2011】糖果 [差分约束]
    【BZOJ1095】【ZJOI2007】捉迷藏 [动态点分治]
    【BZOJ4031】【HEOI2015】小Z的房间 [Matrix-Tree][行列式]
    【FJWC2017】交错和查询 [线段树]
  • 原文地址:https://www.cnblogs.com/123ing/p/3905131.html
Copyright © 2011-2022 走看看