客户端使用nodejs中的thrift进行多路复用

时间:2017-12-09 17:35:24

标签: node.js thrift

如何在nodejs中使用thrift实现客户端多路复用?

我尝试了以下代码,但徒劳无功。

var transport = thrift.TBufferedTransport;
var protocol = thrift.TBinaryProtocol;
var multiplexer = thrift.Multiplexer;

var ip = 'localhost';
var port = 9090;
var connection = thrift.createConnection(ip, port, {
  transport : transport,
  protocol : protocol
});
multiplexer();
var client = multiplexer.prototype.createClient(
  "myServiceName", myServiceClient, connection
);

当我使用上面的客户端并调用我的服务中定义的方法/函数时,  连接正在顺利进行(没有连接错误)和  服务方法/功能平稳运行并返回输出。 但是在接收到thrift npm模块中的数据(缓冲)connection.js时抛出“无法设置属性'0'未定义”错误。 在进一步调查中,我发现没有设置在每个客户端创建时设置的seqid。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

我发现这是客户的解决方案:

   
var transport = thrift.TBufferedTransport;
var protocol = thrift.TBinaryProtocol;
var multiplexer = thrift.Multiplexer;

var ip = 'localhost';
var port = 9090;
var connection = thrift.createConnection(ip, port, {
  transport : transport,
  protocol : protocol
});

var multiplexer = new thrift.Multiplexer();
var client = multiplexer.createClient(
  "myServiceName", myServiceClient, connection
);