Re: 取代 DWR 的好东西—— PHPRPC for Java

本文介绍PHPRPC 3.0版本的服务器端及客户端实现方式。更新后的PHPRPC_Server类简化了远程方法调用的配置过程,并优化了客户端交互流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是原来那个例子的 3.0 写法:

服务器端:


<%@ page import="org.phprpc.*" %>
<%
PHPRPC_Server phprpc_server = new PHPRPC_Server();
phprpc_server.add("min", Math.class);
phprpc_server.add(new String[] { "sin", "cos" }, Math.class);
phprpc_server.start(request, response);
%>


大家会发现,这个跟原来差不多,但是类名已经改为 PHPRPC_Server 了,这样做是为了跟其它语言的名称统一。另外,request,response 和 session 这三个参数从构造方法中移除了,而取而代之的是,通过 start 方法传入 request 和 response。这样做的好处是。 PHPRPC_Server 创建并添加完发布方法后,可以放到 session 中保存(前提是 session 是保存在内存中的),然后从 session 中取出来后,可以直接用 start 方法发布。这样可以起到一定的加速作用。

[code]
<html>
<head>
<script type="text/javascript" src="phprpc_client.js"></script>
</head>
<body>

min(<input id="a" type="text" />, <input id="b" type="text" />) <input id="minbtn" type="button" value="=" /> <input id="c" type="text" />

<script type="text/javascript">
var a = document.getElementById("a");
var b = document.getElementById("b");
var c = document.getElementById("c");

var rpc_client = new PHPRPC_Client('http://localhost:8080/server.jsp', ['min']);

document.getElementById("minbtn").οnclick= function() {
c.value = "loading...";
rpc_client.min(a.value, b.value, function (result) {
c.value = result;
});
}
</script>
</body>
</html>
[/code]
而客户端变得更加简单了。初始化时可以直接指定服务器地址,并且可以将远程方法名以数组的形式传递给客户端,这样就省去了跟服务器的首次通讯过程。而且这样做之后,后面也不再需要等待客户端准备好的状态了,所以,就再也不会看到 RPC not ready 的提示啦!另外,字符串类型也不需要事先转换成 Number 类型了,服务器会自动进行这种弱类型之间的转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值