了解Thrift Javascript对象

时间:2012-08-24 19:56:18

标签: javascript thrift

我试图理解Thrift为javascript自动生成的.read(输入)和.write(输出)函数。

我找不到任何关于如何与作为Javascript对象一部分的这些函数进行交互的文档。

链接或说明?

1 个答案:

答案 0 :(得分:2)

因此,对于您在.thrift文件中定义的每个数据结构,Apache Thrift将为您生成一个包含读取和写入方法的类,用于对象的序列化(写入)和反序列化(读取)。类型。

现在,读取和写入方法将参数作为参数,并且在给定传输的情况下创建协议。您可以在以下链接中找到Thrift上下文中的协议和传输的含义:

http://anomalizer.net/statistically-incorrect/2010/11/introduction-thrift-serialization/

维基百科上Thrift图层的图片和描述可能有助于理解数据在不同图层之间的传递方式。

现在我还没有在Javascript中尝试过这个,但是thrift支持的不同语言的库看起来非常相似。所以在Python中,这就是使用读写方法的方法:

//SERIALIZATION:
transportOut = TTransport.TMemoryBuffer()
protocolOut = TBinaryProtocol.TBinaryProtocol(transportOut)
work.write(protocolOut)
bytes = transportOut.getvalue() # the string 'bytes' can be written out to disk 
                            #  to be read in at a different time

// DESERIALIZATION
transportIn = TTransport.TMemoryBuffer(bytes)
protocolIn = TBinaryProtocol.TBinaryProtocol(transportIn)
moreWork = Work()
moreWork.read(protocolIn)

HTH