Blue框架的基本教程二:客户端调用服务器的方法

Posted 弃天笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Blue框架的基本教程二:客户端调用服务器的方法相关的知识,希望对你有一定的参考价值。

如蒙转载,请注明文章出处: www.sujun.org   作者: 弃天笑

上篇说到客户端连接和端开连接,服务器有什么事件,那么我们先做就来看看客户端调用服务器上的方法
客户端连接服务器的代码这里就不在重复了,只说调用服务器的代码
定义个接受服务器返回结果的响应事件对象
var receice:Object = new Object();
//服务器返回结果时调用该方法
receice.onResult = function(num:Number)
{
    trace("num:" + num);
}
//远程调用方法失败时响应该方法
receice.onFault = function(msg:String)
{
    trace("fail:" + msg);
}

//呼叫服务器的方法
function callServerMethod()
{
    //对象
    var obj:Object = new Object();
    obj.name = "objName";
    obj.num = 50;
    //数组
    var ary:Array = [1,4,7,16,98,100];
        //把参数发送到服务器上去,第一个为服务器上的一个类实例的标示
        //第二参数是要调用的方法名,第三个是要接受服务器返回结果的对象
        //往后就是要传到服务器的参数了,注意,参数类型顺序一定要和服务器方法的参数一致
    netConnect.call("services","callParams",receice,"中文",23);
}

//注意,记得在连接服务器成功后。再调用这个callServerMethod()函数就可以了

接着再来看服务端的代码,首先是要被客户端调用的对象
ReceiveClientCall.java
public class ReceiveClientCall
{
    public double callParams(String name, double age)
    {
        System.out.println("客户端传过来的name:" + name);
        System.out.println("客户端传过来的age:" + age);

        
        return 100;
    }
}

很简单,就定义了一个callParams方法以及两个参数,对应客户端的
netConnect.call("services","callParams",receice,"中文",23);
接着就可以看控制台是否打印出客户端传过去的数据。

就这样写一个类就可以被客户端调用了吗?答案是不行的,我们还必须做一些事,那就是告诉服务器,有这么一个对象可以被客户端调用
那么看回MainFrame.java这个类的代码
比较一下之前,就可以发现多了一行代码

import org.sujun.blue.net.Server;
import org.sujun.blue.global.Application;

public class MainFrame 
{
    public static void main(String[] args)
    {
        //注册响应客户端连接和端开处理类
        Application.addStartEndListenter(new StartAndEnd());
               //注册被客户端调用的对象
        Application.regeditClass("services", ReceiveClientCall.class);
        Server ser = new Server();
        //设置端口
        ser.setPort(5588);
        //启动服务
        ser.startServer();
    }
}

仔细一看,就是多了这行代码
 //注册被客户端调用的对象
Application.regeditClass("services", ReceiveClientCall.class);
第一个参数是被该对象命个名,即是被客户端调用的称号,第二个就是一个Class对象啦

恩,做完这些步骤,就可以去运行服务器看效果啦
(其实我们还可以传对象,数组等等的)

源代码下载:  [url=http://www.sujun.org/downfiles/blue/example.rar[/url]例子代码 

以上是关于Blue框架的基本教程二:客户端调用服务器的方法的主要内容,如果未能解决你的问题,请参考以下文章

Blue框架的基本教程一:连接服务器

蚂蚁金服开源-SofaRpc源码学习篇

VIP_OSP--基于Thrift的RPC框架的基本原理

VIP_OSP--基于Thrift的RPC框架的基本原理

thrift使用

基于Blue框架开发的简单网游