2019独角兽企业重金招聘Python工程师标准>>>

PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。
下载地址:http://www.phprpc.org/zh_CN/download/
该版本直接解压后就可以使用,其中
属于公共文件。不论是客户端还是服务器端都需要这些文件。
是客户端文件,如果你只需要使用客户端,那么只要有上面那些公共文件和这个文件就可以使用了,使用时,直接在你的程序中包含 phprpc_client.php 就可以,公共文件不需要单独包含。
这三个文件是服务器端需要的文件。
其中 dhparams 目录中包含的是加密传输时用来生成密钥的参数
dhparams.php 是用来读取 dhparams 目录中文件的类。
phprpc_server.php 是服务器端,如果你要使用 PHP 来发布 PHPRPC 服务,只需要包含这个文件就可以了。公共文件和 dhparams.php 都不需要单独包含。
PHP 4.3+、PHP 5、PHP 6
客户端要求开启 socket 扩展。
服务器端需要有 IIS、Apache、lighttpd 等可以运行 PHP 程序的 Web 服务器。
如果服务器端需要加密传输的能力,必须要保证 session 配置正确。

<?php
include('php/phprpc_server.php'); //加载文件
function hello($name) {return'Hello ' . $name;
}
$server = new PHPRPC_Server(); //创建服务端
$server->add(array('hello', 'md5', 'sha1')); //数组形式一次注册多个函数
$server->add('trim'); //单一注册
$server->start(); //开启服务
?>
<?php
include ("php/phprpc_client.php"); //加载文件
$client = new PHPRPC_Client('http://127.0.0.1/server.php'); //创建客户端 并连接服务端文件
echo$client->Hello("word"); //调用方法 返回 hello word
?>

————————————————– —————————————————
服务端其他说明:

<?php
include('php/phprpc_server.php'); //加载文件
function hello($name) {
return'Hello ' . $name;
}
class Example1 {
staticfunction foo() {
return'foo';
}
function bar() {
return'bar';
}
}
$server = new PHPRPC_Server(); //创建服务端
$server->add('foo', 'Example1'); //静态方法直接调用
$server->add('bar', new Example1()); //非静态方法 需要实例化
//注册别名调用
$server->add('hello', NULL, 'hi'); //第三参数是函数的别名 客户端通过别名来调用函数
$server->add('foo', 'Example1', 'ex1_foo');
$server->add('bar', new Example1(), 'ex1_bar');
$server->setCharset('UTF-8'); //设置编码
$server->setDebugMode(true); //打印错误
$server->setEnableGZIP(true); //启动压缩输出虽然可以让传输的数据量减少,但是它会占用更多的内存和 CPU,因此它默认是关闭的。
$server->start(); //开启服务
?>

————————————————– —————————————————
客户端其他说明:

<?php
include ("php/phprpc_client.php");
$client = new PHPRPC_Client();
$client->useService('http://127.0.0.1/server.php'); //远程调用地址
$client->setKeyLength(1000); //密钥长度
$client->setEncryptMode(3); //加密等级0-3
$client->setCharset('UTF-8'); //设置编码
$client->setTimeout(10); //设置超时时间
echo$client->hi('PHPRPC'), "\r\n"; //调用函数
echo$client->getKeyLength(), "\r\n"; //下面是返回值
echo$client->getEncryptMode(), "\r\n";
echo$client->getCharset(), "\r\n";
echo$client->getTimeout(), "\r\n";
?>

————————————————– ————————————————— ———————-
关于session
<?php
include('php/phprpc_server.php');
class ExampleCounter {
function ExampleCounter() {
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
}
}
function inc() {
$_SESSION['count'] += 1;
}
functioncount() {
return$_SESSION['count'];
}
}
$server = new PHPRPC_Server();
$server->add(array('inc', 'count'), new ExampleCounter());
$server->start();
?>
<?php
include("php/phprpc_client.php");
$client = newPHPRPC_Client();
$client->useService('http://127.0.0.1/1.php');
$client->setTimeout(10);
echo $client->inc();
echo $client->count();
echo $client->inc();
echo $client->count();
?>
每次刷新都是新建的client 服务端并不能识别.

转载于:https://my.oschina.net/mickelfeng/blog/85764

PHPRPC for PHP相关推荐

  1. 用 PHPRPC 实现 Ajax 安全登录

    该文首发于CoolCode.CN 昨天我举了个 用 PHPRPC 实现 Ajax 级联下拉菜单 的例子,那个例子中我们重点要演示的是用 PHPRPC 实现 Ajax 效果是多么的简单.今天我们这个例子 ...

  2. Yii框架中集成phprpc、hprose

    在项目开发的过程中有时候会涉及到对外提供接口供第三方程序调用或者是不同程序间需要相互通信,那么最通用的做法是用传统的SOAP方式来实现,用XML的文档格式来作为传输载体.但是这种方式不灵活,支持的数据 ...

  3. PHP使用PHPRPC协议调用JAVA类

    SOAP(Simple Object Access Protocol,简单对象访问协议) 随着厂商的不断竞争和设计,并由于传对象无法实现互通,SOAP逐渐改为传字符串,并最终被设计为传XML的WebS ...

  4. ThinkPHP 详细介绍

    ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkP ...

  5. 转载 Xmlhttprequest对象池

    2019独角兽企业重金招聘Python工程师标准>>> 在ajax应用中,通常一个页面要同时发送多个请 求,如果只有一个XMLHttpRequest对象,前面的请求还未完成,后面的就 ...

  6. Java开源Web Service(转)

    为什么80%的码农都做不了架构师?>>>    Axis  Apache Axis 是Apache WebService项目中的子项目,其最初起源于IBM的"SOAP4J& ...

  7. 关于Qomo于ajax的异同~

    现在ajax实现太过火了,什么都向上面靠.其实早在2000前以前,WEB开发人员就已经在用Frame/Frameset来实现远程数据的获取.后来IE成为事实上的B端标准之后,IFrame就成了做远程数 ...

  8. php中四种webservice实现的简单架构方法及实例

    PHP本身的SOAP,开源的NUSOAP,商业版的PHPRPC,以及使用二进制传输数据流的HessianPHP,那么一下就简单的介绍下这几种webservice在php中的使用,虽然网上也有很多这方面 ...

  9. ios请求php接口失败,laravel,php_iOS调用Laravel接口返回错误信息,laravel,php,ios - phpStudy...

    iOS调用Laravel接口返回错误信息 iOS端代码如下: AFHTTPRequestOperationManager *manage = [[AFHTTPRequestOperationManag ...

最新文章

  1. windows下安装mysql8.0压缩版
  2. js使用计时事件制作的钟表
  3. 自定义PopupWindow弹出后背景灰色状态
  4. MVC4.0网站发布和部署到IIS7.0上的方法
  5. Android之TrafficStats实现流量实时监测
  6. 研讨会 | 知识图谱引领认知智能+
  7. 视频隐身衣:物体移除、去水印、后期处理毫无痕迹
  8. PostgreSQL大版本升级(pg_upgrade)11.7升12.2
  9. 配置Apacheserver
  10. Java程序设计语言基础05:Java的类和对象
  11. 数据库安全之Mysql数据库安全加固
  12. kudu导入文件(基于impala)
  13. C++中的 求模运算 和 求余运算
  14. 利用adsl拨号服务器VPS构建代理IP池
  15. 用 Python 实现黑客帝国中的数字雨落既视感
  16. 教你快速查询大量圆通快递单号的物流信息
  17. Android-工作遭遇-URLConnection原生请求http和https忽略证书
  18. 挑食有理——罗敏娜集团总裁卓顺发养生之道
  19. 自动生成带昵称的头像(仿照钉钉头像)
  20. 1147 简单评委打分

热门文章

  1. bootstrap表格某一列值相同时_Bootstrap-table实现动态合并相同行(表格同名合并)
  2. 神策数据荣登《中国企业家》2019 中国科创企业百强榜
  3. 多重链表 十字链表存储稀疏矩阵,中缀表达式
  4. mikrotik ros ***借线
  5. BIM机器人来袭、你害怕了吗
  6. 页面生命周期:DOMContentLoaded, load, beforeunload, unload
  7. 通过随机数生成兑换码和概率生成随机数
  8. cassandra的命令
  9. 全自动化建立SSH信任
  10. Linux.Unix.windows的纠结史