thrift协议按设计理念来说是能够跨语言调用的,实际测试了一下,Nodejs和Go之间可以通过thrift-0.14.1协议进行跨语言调用,具体用例见《Go语言:thrift协议0.14.1的使用示例》和《Nodejs thrift协议0.14.1的使用示例》。
Nodejs和Go双方的通信协议必须一致,
传输协议对应如下:
Nodejs | Go |
thrift.TBufferedTransport | func NewTBufferedTransportFactory(bufferSize int) *TBufferedTransportFactory |
thrift.TFramedTransport | NewTFramedTransportFactory(factory TTransportFactory) TTransportFactory |
编码协议对应如下:
Nodejs | Go |
thrift.TBinaryProtocol | thrift.NewTBinaryProtocolFactory(strictRead, strictWrite bool) |
thrift.TCompactProtocol | thrift.NewTCompactProtocolFactory() |
thrift.TJSONProtocol | thrift.NewTJSONProtocolFactory() |