下面是原来那个例子的 3.0 写法:
服务器端:
大家会发现,这个跟原来差不多,但是类名已经改为 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 类型了,服务器会自动进行这种弱类型之间的转换。
服务器端:
<%@ 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 类型了,服务器会自动进行这种弱类型之间的转换。