hprose 1.0(rpc 框架) - 内部数据标准

Posted ~~逍遥~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hprose 1.0(rpc 框架) - 内部数据标准相关的知识,希望对你有一定的参考价值。

 

hprose 1.0 内部数据标准

方法的描述  {
    // 请求调用格式
    ‘C‘.writeString(‘method1‘).‘a‘.count($params).‘{‘.‘m‘.count($params)‘{‘. xxx .‘}‘.‘}‘.‘z‘
    
    // 请求返回格式
    ‘R‘.serialize($result).‘z‘
}


// 数据类型的描述
serialize == {
    null == {
        writeNull() --->  ‘n‘
    }
    
    is_scalar == {
        writeNaN() --->  ‘N‘
        writeInteger(10) --->  ‘i10;‘
        writeLong(2000) --->  ‘l2000;‘
        writeBoolean(true) --->  ‘t‘  或者  ‘f‘
        writeDouble(3.6) --->  ‘d000;‘
        writeDouble(正无穷大、负无穷大) --->  ‘I+‘ 或者 ‘I-‘
        writeEmpty() --->  ‘e‘
        writeUTF8Char($val) --->  ‘u‘.‘‘
        writeStringWithRef($val) --->  writeString($val)
        writeBytes($bytes)  --->  ‘b‘.strlen($bytes).‘"‘.$bytes.‘"‘
        writeBytesWithRef($val)  --->  writeBytes($bytes);
        writeString($str) --->  ‘s‘.(strlen(iconv(‘UTF-8‘, ‘UTF-16LE‘, $str)) >> 1).‘"‘.$str.‘"‘
    }

    is_array == {
        writeArray($array) --->  ‘a‘.count($array)‘{‘. xxx .‘}‘
        writeAssocArray($map) --->  ‘m‘.count($map)‘{‘. xxx .‘}‘
    }

    is_object == {
        writeDateTime($datetime) --->  $datetime->format(‘\DYmd\THis.u\Z‘)
        writeMapWithRef($val) --->   writeMap($val)  --->  ‘m‘.count($val)‘{‘. xxx .‘}‘
        writeListWithRef($val) --->  writeList($val) --->  ‘a‘.count($val)‘{‘. xxx .‘}‘
        writeStdClassWithRef($val) --->  writeStdClass($obj)  --->  ‘m‘.count($val)‘{‘. xxx .‘}‘
        writeObjectWithRef($val) --->  writeObject($obj)  --->  {
            $class = get_class($obj); // ‘Dir1\Dir2\Clazz1‘;
            $alias = ‘Dir1_Dir2_Clazz1‘
            ---> ‘c‘.(strlen(iconv(‘UTF-8‘, ‘UTF-16LE‘, $alias)) >> 1).‘"‘.$alias.‘"‘.count($props).‘{‘.writeString(strtolower($prop[0]) . substr($prop, 1)).‘}‘.‘o‘.‘0‘.‘{‘.$prop->getValue($obj).‘}‘
        }
    }
}

 

以上是关于hprose 1.0(rpc 框架) - 内部数据标准的主要内容,如果未能解决你的问题,请参考以下文章

基于Hprose RPC框架

性能工具之Jmeter压测Hprose RPC服务

hprose rpc使用实例(同时有Java和Delphi客户端的例子)

大数据学习——hadoop的RPC框架

用GO写一个RPC框架 s01(服务内部注册实现)

Apache thrift - 使用,内部实现及构建一个可扩展的RPC框架