1

我试图了解 Thrift 为 javascript 自动生成的 .read(input) 和 .write(output) 函数。

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

链接或描述?

4

1 回答 1

2

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

现在 read 和 write 方法都将协议作为参数,并且在给定传输的情况下创建协议。您可以在以下链接中找到在 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)

高温高压

于 2012-11-20T10:50:59.547 回答