近日公司小网站要搞个webservice,最开始找到soap,发现简直就是坑哥呀,2个参数就要传递那么长的soap数据,性能不行啊(不可否认严格soap格式在重量级网站有绝对的优势)。
    当我发现PHPRPC的时候,我笑了,彻底的笑了。
          一见钟情啊!!有木有!!
          相见恨晚啊!!有木有!!
          踏破铁鞋无觅处得来全不费工夫!! 有木有!!
          众里寻他千百度,暮然回首,那人在那穿着秋裤。有木有!!
这不就是我要找的吗,序列化传递方式,自定义加密,还可以会话管理。妙极了。。

解决方案 »

  1.   

    客户端是 php 自然是没有问题,如果是 asp、jsp、js 那就 ....
      

  2.   


    asp,jsp 没有测试,js是可以的
      

  3.   

    js测试代码:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>jquery</title>
    <!-- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> -->
    <!-- <script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script> -->
    <script type="text/javascript" src="phprpc_3.0.1_js/compressed/phprpc_client.js"></script>
    <script type="text/javascript">
    function phpprcClient()
    {
    var client = new PHPRPC_Client('http://test.92wy.com/phprpc_server/server.php', ['hi']);
    var as = new Array();
    as[0] = 'aa';
    as[1] = 'bb';
    as[2] = 'cc';
    //client.setKeyLength(256);
    client.setEncryptMode(0);
    client.hi('hello', 'login', as, function (result, args, output, warning) {
    alert(result);
    });
    }
    </script>
    <style type="text/css">
    </style>
    </head>
    <body>
    <input id="btn" onclick="return phpprcClient()" type="button" value="button"/>
    </body>
    </html>PHP server端:
    include('phprpc_server.php');
    function hello($m, $a, $arr) {
    $classname = $m.'control';
    $control = new $classname();
    $method = 'on'.$a;
    if(method_exists($control, $method) && $a{0} != '_')
    {
    $data = $control->$method($arr);
    return $data;
    }
    else
    {
    return 'error code : 00007';
    }
    }
    $server = new PHPRPC_Server();
    $server->add('hello', null, 'hi');
    $server->initKey('key');
    $server->setDebugMode(true);
    $server->start();class hellocontrol
    {
    function onlogin($arr)
    {
    return $arr;
    }
    }
      

  4.   

    php的web service没搞过倒是asp.net的创建web service简单的一笔然后再用php去调数据就可以了
      

  5.   

    协议用的是xmlrpc协议吧?php本身就有xmlrpc的封装。
      

  6.   

    <script type="text/javascript" src="phprpc_3.0.1_js/compressed/phprpc_client.js"></script>到头来还是js的一个第三方库被你用了
    这就没什么值得炫耀的了
      

  7.   

    我也纳闷呢。。还是不错的东西,为什么没人用呢? 难道都用soap了?小站点都自己写socket了?
      

  8.   

    phprpc一整套东西都已经被封装好了,肯定直接用啊,而且协议都是通用的,难道自己写?
    解决ajax跨域很不错,支持一下,拿来玩过,不过一直没用过这东西放到真实项目中