Node 与 Thrift

背景:公司要用Node与其他语言(Java)写的服务通信。

1,服务端 helloServer.js

var thrift = require(‘thrift‘);
var helloService = require(‘./HelloService‘);
var server = thrift.createServer(helloService, {
    hello: function(para, success){
        console.log("para: " + para);
        success(null, "Hi, Client! I am Server!");
    }
}, {});
server.listen(8080);

2,客户端 helloClient.js

var thrift = require(‘thrift‘);
var helloService = require(‘./HelloService‘);
//创建连接和客户端
var connection = thrift.createConnection(‘localhost‘, 8080);
connection.on(‘error‘, function(err) {
    console.error(err);
});
var client = thrift.createClient(helloService, connection);
//调用hello方法
var para = ‘Hi Server! I am Client.‘;
client.hello(para, function(err, res){
    if(err){
        console.error("Error: " + err);
    }else{
        console.log("Result: " + res);
    }
    connection.end();
});

3,thrift compiler version: 0.9.2.
 
4,此版本的node第三方库thrift的server.js文件有个bug,导致thrift.createServer(processor, handler, options)的第三个参数必须得传。


截图红框中的代码应该为:

if (options && options.tls) {

时间: 2024-10-11 04:47:09

Node 与 Thrift的相关文章

node(thrift)

thrift是一种跨语言的RPC框架,据说uber采在node.js项目中采用thrfit后,比原有的http+json的方式提高近20倍的性能. 所谓的RPC本质上就是客户端将需要调用的方法名和参数通过通信协议传递给服务端,服务端计算后将返回值同样以通信协议返回,该方法在需要实现分布式的应用系统中较常见. 复杂的话,可以做成内部总线的形式. 本文记录一个node.js下thrift的简单例子. 1.下载thrift编译工具,本人用的是最新的0.92版本(当天),在windows下安装后并配置环

基于thrift的node.js rpc服务

1.在node.js 服务下创建node_modules文件,npm install  thrift 下载thrift到该文件下. 2.编写idl文件.user.thrift 内容如下: struct User{ 1: string uid, 2: string uname, 3: bool usex, 4: i16 uage, } service UserService{ void add(1: User u), User get(1: string uid), } 3.生成代码: 运行:th

Nodejs通过thrift访问Java服务

上一篇文章中实现了用Java作为thrift客户端和服务端.接下来我们用nodejs作为客户端访问一下.Nodejs的安装可以查看http://www.cnblogs.com/xucheng/p/3988835.htmlnodejs的介绍. 1.进入thrift.exe所在目录执行thrift-0.9.2.exe   –gen  js:node hello.thrift编译hello.thrift生成nodejs的实现文件. 2.在cmd窗口进入生成的gen-nodejs目录,使用npm  in

使用thrift实现了Java服务器和nodejs客户端之间的跨平台通信

1. 简单介绍 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的.高效的服务. 2. 下载与安装 Thrift目前最高0.9.2,地址:http://archive.apache.org/dist

Thrift操作(Python服务端和Nodejs客户端)

目录 前言 python服务端 nodejs客户端 win10运行thrift 测试 前言 操作系统win10 时间2019年02月 Thrift版本:Thrift version 0.11.0 Python版本: Python 3.5.2 Nodejs版本: node v8.9.3 参考网址1 python服务端 安装thrift python install thrift server.py # -*- coding: utf-8 -*- import json # 调用python安装的t

5105 pa2 Distributed Hash Table based on Chord

1 Design document 1.1 System overview We implemented a Book Finder System using a distributed hash table (DHT) based on the Chord protocol. Using this system, the client can set and get the book’s information (title and genre for simplicity) using th

Thrift CentOS安装和使用

Thrift是Apache的一个开源的跨语言服务开发框架,它提供了一个代码生成引擎来构建服务,支持C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,JavaScript,Node.js,Smalltalk,OCaml,Delphi等多种编程语言. 一般来说,使用Thrift来开发应用程序,主要建立在两种场景下: 第一,在我们开发过程中,一个比较大的项目需要多个团队进行协作,而每个团队的成员在编程技术方面的技能可能不一定相同,为了实现这种跨

Apache Thrift with Java Quickstart(thrift入门及Java实例)

thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的.高效的服务. 1. 概述 Thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器.thrift允许你定义一个

Apache Thrift 跨语言服务开发框架

Apache Thrift 是一种支持多种编程语言的远程服务调用框架,由 Facebook 于 2007 年开发,并于 2008 年进入 Apache 开源项目管理.Apache Thrift 通过 IDL 来定义 RPC 的接口和数据类型,然后通过代码生成工具来生成针对不同编程语言的代码,目前支持 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCa