怎么PHP中使用黑森?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强>什么是黑森
强>黑森是由caucho提供的一种开源的远程通讯协议。
采用二进制RPC协议,基于HTTP传输,服务器端不用另开放防火墙端口。
协议的规范是公开的,可以用于任意语言。
采用客户机/服务器模式。
请求程序就是一个客户机,而服务提供程序就是一个服务器。
客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。
在服务器端,进程保持睡眠状态直到调用信息的到达为止。
当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,
获得进程结果,然后调用执行继续进行。
<强>黑森协议工作流程图
强>客户端程序请求服务端函数
1。调用客户端句柄,执行传送参数。
2。调用本地系统内核发送网络消息。
3。消息传送到远程主机。
4。服务器句柄得到消息并取得参数。
5。执行远程过程。
<强>附带源码解释强>
<强> 1。引用配置文件,包括网站根目录,以及黑森的地址。
强>
代码如下:
& lt; ? php
/* *
, *文件名,,,,,,,:config . php
, *用途,,,,,,,:黑森配置文件
, *
, * @package system.core。代码应用到整个网站
, * @copyright版权(c) 2012
,
1.0 * @since, */
//根目录
定义(& # 39;path & # 39;,目录名(__FILE__)。DIRECTORY_SEPARATOR);
//黑森Url地址
定义(& # 39;HESSIAN_URL& # 39;& # 39;http://qx.com/server.php& # 39;);
//IDE: Zend Studio 9.0
//IDE扩展:切换Vrapper
?在
<强> 2。配置服务端。
强>
代码如下:
& lt; ? php
/* *
, *文件名,,,,,,,*:server.php
,
, *参考资料,,,:
, * 1. http://hessian.caucho.com/(黑森主页)
, * 2. http://hessianphp.sourceforge.net/(黑森PHP)
, * 3. http://sourceforge.net/projects/hessianphp/(黑森PHP开源)
, * 4. http://baike.baidu.com/view/1859857.htm(单例模式)
, *
, * @author wubaiqing & lt; xinxiangmo@gmail.com>
, * @package系统。核心应用到整个网站
, * @copyright版权(c) 2012
,
1.0 * @since, */
require_once(目录名(__FILE__)。DIRECTORY_SEPARATOR。& # 39;config . php # 39;);
require_once(路径。& # 39;扩展/HessianPHP HessianService.php& # 39;);
类HessianServer
{
,,,公共函数__construct () {}
,,,/* *
,,,,*商品详细信息APi接口
,,,,* @param字符串$标题标题
,,,,* @param int美元价格价格
,,,,*/
,,,公共函数goodsInfomationApi(标题、价格美元){
,,,,,,,美元价格=(int)美元价格;
,,,,,,,返回& # 39;& lt; h2在使用黑森协议调用远程方法。;/h2>标题:& # 39;。美元的标题。& # 39;& lt; br>价格:& # 39;美元价格;
,,,}
}
server=new HessianService美元(新HessianServer ());
//服务器→美元displayInfo ();
服务器→美元处理();
//IDE: Zend Studio 9.0
//IDE扩展:切换Vrapper
?在
<强> 3。可以通过HessianService类中的displayInfo方法去查看开启多少个通讯方法。
>强如果搭建服务端要使用处理方法,如出现黑森要求后提示,服务端就已经搭建成功。
<强> 4。封装黑森接口
强>
代码如下:
& lt; ? php
/* *
, *类名,,,,,,,*:HessianApi
,
, *参考资料,,,:
, * 1. http://hessian.caucho.com/(黑森主页)
, * 2. http://hessianphp.sourceforge.net/(黑森PHP)
, * 3. http://sourceforge.net/projects/hessianphp/(黑森PHP开源)
, * 4. http://baike.baidu.com/view/1859857.htm(单例模式)
, *
, * @author wubaiqing & lt; xinxiangmo@gmail.com>
, * @package系统。核心应用到整个网站
, * @copyright版权(c) 2012
,
1.0 * @since, */
类HessianApi
{
,,,/* *
,,,,* @var串接口地址
,,,,*/
,,,私人_url美元=零;