zoukankan      html  css  js  c++  java
  • 转:Hprose for php(一)——快速入门

    文章来自于:http://blog.csdn.net/half1/article/details/21095665

    本文参考了Hprose官方的用户手册,Hprose官网:http://www.hprose.com/ 

     

    使用Hprose制作一个简单的分布式应用程序只需要几分钟的时间。本文将用一个简单的实例来带您快速浏览使用Hprose for PHP进行分布式程序开发的全过程。

    一、安装Hprose for PHP

     

    安装条件

    1)PHP 5.0或更高版本
    2)Apache、IIS、lighttpd、nginx或其它任何一款可以运行php的web服务器。
    3)Hprose for PHP支持SAE云计算平台,在SAE云计算平台上不需要单独的服务器。
     

    安装方法

    1)直接将Hprose for PHP的所有文件(hproseCommon.php,hproseIO.php,hproseHttpServer.php和hproseHttpClient.php)直接复制到您的开发环境的目录下即可,无需任何安装步骤。
    2)Hprose for PHP有三个版本,分别是面向普通的PHP配置,带有curl扩展的PHP配置和SAE平台的。这三个版本目前只有hproseHttpClient.php是有区别的,但是用法完全相同。
     

    二、创建Hprose的Hello服务器

     
          创建PHP的Hprose的服务器非常简单。下面我们以Linux环境为例来讲解。假设在Linux下已经配置好了Web服务器(apache、lighttpd或其它任何http服务器),并且可以执行PHP程序,发布路径为/var/www。然后我们在发布目录下建立一个hprose目录,把Hprose for PHP的几个文件放到该目录下。然后在发布目录下创建一个helloserver.php文件,内容如下:
    [php] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?php  
    2. include("hprose/hproseHttpServer.php");  
    3. function hello($name){  
    4.      return "Hello".$name;  
    5. }  
    6. $server = new HproseHttpServer();  
    7. $server->addFunction("hello"); //发布函数  
    8. $server->handle();   
    9. ?>  
    测试:访问http://localhost/helloserver.php,如果出现“Fa1{s5"hello"}z”就表示服务发布成功。
    猜测这个序列化结果的含义:
    F表示function;a表示List/Array;1表示List/Array的长度;{和}是分隔符,便于解析;s表示String;4表示后接string的长度;z表示end。

    三、创建Hprose的Hello客户端

     
    PHP的Hprose客户端创建更加容易,同样在发布目录下创建helloclient.php文件,内容如下:
    [php] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?php  
    2. include("hprose/hproseHttpClient.php");  
    3. $client = new HproseHttpClient("http://localhost/helloserver.php");  
    4. echo $client->Hello("Hprose");  
    5. ?>  
    测试:访问http://localhost/helloclient.php,或者在命令行上输入php helloclient.php,如果出现“Hello Hprose”就表示客户端创建成功。

    四、个人总结

           Hprose的应用就三件事,第一,复制Hprose文件进项目;第二,写Hprose服务端;第三,写Hprose客户端。
    Hprose服务端要做的事就两件。一、new一个HproseHttpServer对象;二、用这个对象发布服务,包括函数、方法、对象甚至类。
    Hprose客户端要做的事就两件。一、new一个HproseHttpClient对象;二、用这个对象调用服务端发布的各种服务。
    注意:
    1、server和client之间用序列化结果交互,在server中使用echo、var_dump等函数会扰乱序列化结果,故不能使用,在client中可以使用。
    疑问:
    1、当Hprose服务端或客户端有错时,服务器会报500错误,但是不好调试。如何调试。
  • 相关阅读:
    Redis
    Zookeeper的安装配置及基本开发
    【Unity Shader】新书封面 — Low Polygon风格的渲染
    Hive基本原理及环境搭建
    Hadoop开发环境搭建
    java常用排序算法
    企业人事管理系统项目拾金
    Linux27:分区、格式化与修复
    Linux26:查询磁盘和监控系统资源
    Linux25:文件系统特点与XFS文件系统
  • 原文地址:https://www.cnblogs.com/guoyongrong/p/3684701.html
Copyright © 2011-2022 走看看