当前位置:首页 > 开发 > Web前端 > NodeJs > 正文

拥抱大家庭,nodejs走thrift

发表于: 2015-11-13   作者:互联网   来源:转载   浏览:
摘要: 拥抱大家庭,nodejs走thrift。最贱的例子,nodejs与nodejs之间走thrift对传。   1,官网下载 http://mirrors.cnnic.cn/apache/thrift/0.9.1/thrift-0.9.1.exe  2,编辑xuser.thrift struct User{ 1: string uid, 2: s

拥抱大家庭,nodejs走thrift。最贱的例子,nodejs与nodejs之间走thrift对传。

 

1,官网下载

http://mirrors.cnnic.cn/apache/thrift/0.9.1/thrift-0.9.1.exe 

2,编辑xuser.thrift

struct User{

     1: string uid,

     2: string uname,

     3: bool usex,

     4: i16 uage

    }

    service UserService{

     void add(1: User u),

     string adduname(1: string uname),

     User get(1: string uid)

}

3,生成IDL

thrift   --gen js:node xuser.thrift

4,目录下会多出文件

拥抱大家庭,nodejs走thrift

5,编辑server.js

var thrift=require("thrift");

var UserService=require('./gen-nodejs/UserService.js');

var ttypes=require('./gen-nodejs/xuser_types');





var users={};



var server=thrift.createServer(UserService,

    {

        add:function(user,callback){

            console.log("add stored:",user.uname);

            users[user.uid]=user;

            console.log(users);

            callback();},

        adduname:function(x,callback){

            console.log("adduname stored:",x);

            callback(null,"MMMMM");

        },

        get:function(uid,callback){

            console.log("get received:", uid);

            console.log(users[uid]);

            callback(null,users[uid]);

        }

    }

);



server.listen(3000);

console.log("server start");



server.on("error",function(e){

    console.log(e);

});

6,编辑client.js

var thrift =require('thrift');





var UserService = require('./gen-nodejs/UserService.js');

var ttypes = require('./gen-nodejs/xuser_types');







var connection = thrift.createConnection('127.0.0.1', 3000);

var client = thrift.createClient(UserService, connection);



connection.on("error",function(e)

{

    console.log(e);

});





var x=new ttypes.User({

    uid:'112',

    uname:'aab',

    usex:0,

    uage:'181'

});









client.add(x,function(err, res){

    console.log("ADD OK1");

    client.get('112',function(err, res){

        if (err) {

            console.error(err);

        } else {

            console.log("Res:",res);

            connection.end();

        }

    });

    client.adduname('112',function(err, res){

        if (err) {

            console.error(err);

        } else {

            console.log("Res:",res);

            connection.end();

        }

    });

});

7,装nodejs的thrift包

npm install thrift

8,node server.js

9,node client.js

拥抱大家庭,nodejs走thrift

OK,小功告成。

拥抱大家庭,nodejs走thrift

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号