【发布时间】:2018-05-23 16:44:30
【问题描述】:
如何在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 没有被设置。
有人可以帮我解决这个问题吗?
【问题讨论】: