【问题标题】:Client side multiplexing using thrift in nodejs在nodejs中使用thrift进行客户端多路复用
【发布时间】: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 没有被设置。

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: node.js thrift


    【解决方案1】:

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

    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
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 2015-11-18
      相关资源
      最近更新 更多