《Programming Web Services with XML-RPC》

欢迎关注我的个人博客blog.timene.com


由于项目对外提供API的需要,今天看了Dave Winer的《Programming Web Services with XML-RPC》,他是XML-RPC的发起者(之一)。

先说这本书:英语没过六级的最好看翻译版的(不知道有没有),其中句式复杂,词汇诡异,过了6级的硬着头皮看应该还应付的过去;书的内容不错,<Foreword>讲了XML_RPC的起源和发展,<Preface>随便看看就成,<Chapter 1. Introduction>没什么印象了,对我来说最精彩的一章莫属<Chapter 2 .The XML-PRC Protocol>,从Data Types,Request Format,到Response Format都很精彩,也是看完就能出成绩的章节。后面的章节从Java, Perl, PHP, ASP各语言的角度对使用进行详细分析,可惜我关心的PHP只有短短半页。

然后在网上详细看了PHPRPC http://phprpc.org/zh_CN/,做了一个DEMO,发现还蛮好用的。

客户端用js,代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>RPC</title> 
<script type="text/javascript" src="../js/phprpc/compressed/phprpc_client.js"></script> 
<script type="text/javascript"> 
   var rpc = new PHPRPC_Client('../php/rpc.php', ['sha1','Hi']); 
    
   function $(id) { 
    return document.getElementById(id); 
   } 
    
   function showResult(result) { 
    $('sha1').value = result; 
   } 
    
   function sha1() { 
    var input = $('sha1').value; 
    $('sha1').value = "Loading..."; 
    rpc.Hi(input, showResult); 
   } 
</script> 
</head> 
<body> 
    <input type="text" id="sha1" /> 
    <input type="button" value="���� SHA1" onclick="sha1()" /> 
</body> 
</html>

服务器端用PHP,代码如下

<?php 
require_once("phprpc/phprpc_server.php"); 
$server = new PHPRPC_Server(); 
function Hi($name)
{
   return 'Hello ' . $name; 
}
$server->add("sha1"); 
$server->add("Hi"); 
$server->start(); 
?>


总的来说,用动态语言实现RPC还是蛮方便的。


你可能感兴趣的:(JavaScript,Web,PHP,Services)