PHPRPC是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。
官方主页:http://www.phprpc.org/zh_CN/
官方网站有比较详尽的各种版本的使用介绍,上手还是比较快的。以下给出我的一个demo示例,从看文档到开发第一demo用了30分钟左右。
我使用的是java版本,前面的安装步骤不在重述了,看官方文档。
1.编写Service接口及实现类
public interface ServiceI {
public String say(String name);
public Errors showError(String info);
}
public class FirstService implements ServiceI{
@Override
public String say(String name) {
String res = "Hello, "+name+" from PHPRPC";
return res;
}
public Errors showError(String info){
Errors er = null;
er = new Errors();
er.setId("1111");
er.setMsg("phprpc make error:"+info);
return er;
}
}
public class Errors implements Serializable{
private String id;
private String msg;
public Errors(){}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
2.通过Servlet发布服务
public class PhprpcGloabService extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
[b]PHPRPC_Server server = new PHPRPC_Server();
FirstService first = new FirstService();
server.add(first);
server.start(req, res);[/b] }
}
配置web.xml文件,将要发布的服务都置于rpcservice空间下
<!-- PHPRPC Web service发布 -->
<servlet>
<servlet-name>GloabService</servlet-name>
<servlet-class>
com.smartcoms.service.PhprpcGloabService
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>GloabService</servlet-name>
<url-pattern>/rpcservice/*</url-pattern>
</servlet-mapping>
服务发布完毕!
3、编写客户端程序
我以jsp页面做客户端访问Service
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="org.phprpc.*" %>
<%@ page import="com.smartcoms.web.UIElement.Errors" %>
<%@ page import="com.smartcoms.service.ServiceI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Phprpc 调试</title>
</head>
<body>
<%
PHPRPC_Client client = new PHPRPC_Client("http://localhost:8082/smartcoms/rpcservice/GloabService");
ServiceI service = (ServiceI)client.useService(ServiceI.class);
out.println(service.say("中国"));
Errors er = service.showError("信息");
out.println(er.getId());
out.println(er.getMsg());
%>
</body>
</html>
PHPRPC使用起来还是很简单的,可以实现快速Web Service应用。其它方面,还有待在更多的应用环境下实施和评估。
分享到:
相关推荐
本示例主要探讨如何在PHP中调用使用protobuf编译的RPC接口。 首先,了解protobuf的基本概念。protobuf是一种语言无关、平台无关的序列化框架,它可以将结构化的数据序列化为二进制流,以便在网络间传输或者存储到...
- **简单易用**:PHPRPC提供了简单的API,使开发者能够快速集成远程调用功能。 - **高效性能**:由于减少了不必要的协议开销,PHPRPC在性能上往往优于基于XML的Web服务。 - **跨平台**:只要是PHP环境,就可以实现...
安装Phprpc非常简单,一般只需要下载源码并按照文档中的步骤进行配置。同时,文档会指导如何设置服务器环境,确保PHP版本兼容,以及如何配置服务端和客户端的连接参数。 4. **服务定义与调用** 在Phprpc中,服务...
该压缩包中包含的主要文件很可能是Delphi版本的Phprpc库和示例代码。虽然具体的文件列表没有详细给出,但通常会包括以下组件: 1. **Library Files**: Delphi编译的动态链接库(DLL)或静态链接库(LIB),用于在...
- `dotNET`: 可能是关于ASP.NET相关的文档或者示例代码,帮助理解如何在.NET环境中使用PHPRPC。 5. **实际应用** 这种结合方式适用于需要跨平台、跨语言协作的项目,例如已有PHP后端服务,但需要使用ASP.NET或...
这种机制使得PHPRPC在分布式环境下的服务调用变得简单且快速。 PHPRPC的实现原理是将PHP函数封装成服务,然后通过网络传输调用参数和返回值。在服务器端,开发者定义好一系列可被远程调用的函数,这些函数通常包含...
这个标签暗示文章会包含实际的代码示例和对phprpc工具的详细操作指导,读者可以通过阅读源码来理解phprpc的工作原理和使用方法。 【文件名称列表】"testPhPRpc" 这个文件很可能是作者提供的测试案例,可能包含...
通过这些示例,你可以学习如何在ASP中设置PHPRPC客户端,以及在PHP端设置服务器端,实现远程调用。这些源码会包含创建连接、封装和发送请求、接收并处理响应等关键步骤。 总的来说,PHPRPC为PHP和ASP之间的互操作性...
**PHP实现Web服务(Webservice)简单示例** 在当今的互联网环境中,Web服务是一种让不同应用程序之间交换数据和协同工作的标准方式。其中,PHP作为流行的服务器端脚本语言,可以借助SOAP(Simple Object Access ...
XML-RPC比较简单,出现时间比较早,SOAP比较复杂,主要是一些需要稳定、健壮、安全并且复杂交互的时候使用。 PHP中集成了XML-RPC和SOAP两种协议的访问,都是集中在xmlrpc扩展当中。另外,在PHP的PEAR中,不管是PHP 4...
总结来说,PHP实现创建一个RPC服务操作示例涉及了RPC协议的概念、PHP socket编程、服务端与客户端的网络通信、以及服务端程序的异常处理、安全性等。通过实例代码的分析,可以了解到如何在PHP环境中搭建一套基本的...
1. **简单易用**:PHPRPC设计简洁,易于理解和使用,使得开发者可以快速地在PHP项目中集成远程调用功能。 2. **高性能**:通过优化的数据序列化和反序列化机制,PHPRPC能提供高效的传输速度,减少网络延迟。 3. **跨...
### 示例代码 以Python为例,创建一个简单的XMLRPC服务器和客户端: ```python # 服务器端 import xmlrpc.server def add(a, b): return a + b server = xmlrpc.server.SimpleXMLRPCServer(("localhost", 8000)...
以下是一个简单的PHP XML-RPC服务器端和客户端示例: **服务器端代码(rpc_server.php):** ```php function rpc_server_func($method, $params) { $parameter = $params[0]; if ($parameter == "get") { $...
以下是一个简单的XML-RPC服务器端示例代码: ```php <?php // 函数:提供给RPC客户端调用的函数 function rpc_server_func($method, $params) { $parameter = $params[0]; if ($parameter == "get") { $return =...
3. **示例代码**:演示如何设置和使用PHPRPC的简单示例,帮助开发者快速理解和应用。 4. **文档**:详细的API文档和用户指南,解释了如何配置、部署和使用PHPRPC。 在实际使用中,开发者首先需要在服务器端创建一个...
Apache Thrift是一个强大的开源框架,它允许开发人员在多种编程语言之间进行高效的远程过程调用(RPC)。这个框架最初由Facebook开发,后来捐赠给了Apache软件基金会。Thrift的主要目标是解决多语言通信的问题,使...
本文详细介绍了如何使用PHP结合XML-RPC技术构建Web Service,包括安装配置xmlrpc扩展、XML-RPC的工作原理以及具体的实践示例。通过这些内容的学习,开发者可以更好地理解和掌握如何利用PHP构建高效、稳定的Web ...
通过这个简单的PHP实现,我们可以看到如何在PHP中创建一个基础的JSON-RPC服务器和客户端。这为开发分布式系统、跨语言服务提供了便利,使应用程序能够通过网络调用其他系统的函数,如同调用本地函数一样。然而,实际...