RPC中间件之Hessian

来源:互联网 发布:学生自杀数据 编辑:程序博客网 时间:2024/04/28 18:29
   Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

由于项目上使用PHP与JAVA,其中一些业务场景需要保持两者相互调用。

Hessian支持多语言,还有另外一个选择Twitter开源项目Thrift,这个后面的文章会记录。

两者的区别请自行google.

采用Hessian很大一部分原因是Java项目集成该组件,使用起来也比较方便,直接下载PHPHessianClient就能搞定。Java Web集成 hessian请点击链接。

1、Java服务端

/** *  * 类描述:  远程服务方法调用 * @author junhua.zhou * * @version */public interface IDataService {    public byte[] process(byte[] params) ;    public String callProc(String params) ;}/** *  * 类描述:  远程服务方法调用Imple * @author junhua.zhou * * @version */public class DataServiceImpl implements IDataService {    public static final Log log = LogFactory.getLog(DataServiceImpl.class) ;    @Override    public byte[] process(byte[] params) {        return null;    }    @Override    public String callProc(String params) {        System.out.println(params);        return "";    }}

2、PHP客户端

①下载 HessianPHP_v2.0.3.zip

点击下载

<?php   // test.php    // 加载hessian client    include(dirname(APP_PATH).'/lib/Common/Include/hessian/HessianClient.php');    // Java rpc server    $testurl = 'http://localhost:8080/zqdkjob/rmi';    $proxy = new HessianClient($testurl);    try{        $data = array(            'uid'=> '11' ,            'type'=>'2'        ) ;        echo $proxy->callProc(json_encode($data));    } catch (Exception $ex){        // …handle error        echo $ex->getMessage();    }

3、验证

php test.php
Java 打印结果 {“uid”:”11”,”type”:”2”} 表示联通成功

0 0
原创粉丝点击