注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

snoopyxdy的博客

https://github.com/DoubleSpout

 
 
 

日志

 
 

Node.js thrift小试  

2015-04-24 17:28:40|  分类: node |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
今天用Node.js写了一个thrift的小demo,有点小坑
1、nodejs_msg.thrift 接口描述文件

struct SendMsg {
  1: string content,
}

struct ResMsg {
  1: i32 result = 1,
  2: i32 id,
}

service Message{
   ResMsg send(1:SendMsg data),
}


2、我们写client.js

var thrift = require('thrift');
var transport = thrift.TBufferedTransport();
var protocol = thrift.TBinaryProtocol();

var Message = require('./gen-nodejs/Message.js');
var ttypes = require('./gen-nodejs/nodejs_msg_types.js');

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

connection.on('error', function(err) {
  console.log(err)
});

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

var sendData = new ttypes.SendMsg()
sendData.content = 'hello world'
client.send(sendData, function(err, response) {
if(err){
return console.log(err)
}
console.log(response.result)
console.log(response.id)
});


3、最后是server.js

var thrift = require("thrift");
var Message = require('./gen-nodejs/Message.js');
var ttypes = require('./gen-nodejs/nodejs_msg_types.js');


var count = 1
var server = thrift.createServer(Message, {
  send:function(data, cb){
console.log(data)
var resData = new ttypes.ResMsg();
resData.result = 1;
resData.id = count++;
cb(null, resData)
  }
}, {});

server.listen(9090);


4、执行命令:

thrift -r --gen js:node nodejs_msg.thrift
node server.js
node client.js

在server端:

[root@srv031020 nodejs]# node server.js 
{ content: 'hello world' }

在client端:

[root@srv031020 nodejs]# node client.js 
1
1

  评论这张
 
阅读(809)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016