• 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的结果。

     
  • 相关阅读:
    Hibernate中的HQL
    hibernate配置数据库连接池三种用法
    Hibernate的延迟检索和立即检索
    Hibernate关系映射中的注解
    Hibernate的多种关系映射(oto、otm、mtm)
    自然主键和代理主键的区别
    Hibernate的xml方法配置和操作代码
    Hibernate简介
    VirtualBox从USB设备(PE)启动图文教程
    属性动画
  • 原文地址:https://www.cnblogs.com/123ing/p/3905131.html
Copyright © 2020-2023  润新知