拥抱大家庭,nodejs走thrift
拥抱大家庭,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,目录下会多出文件
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
OK,小功告成。
转载于:https://www.cnblogs.com/zacard-orc/p/3590405.html
拥抱大家庭,nodejs走thrift相关推荐
- 调用链监控:Dapper、Istio... etc.
目录 Dapper,大规模分布式系统的跟踪系统by bigbully 2.5.1 带外数据跟踪收集 6.2 解决延迟的长尾效应 7. 其他收获 RPC服务追踪的原理与实践- SegmentFault ...
- python和sass区别_CSS 的预处理程序(Sass、LESS、Stylus 等)分别都有哪些优缺点?...
三种CSS 预处理器(框架) 历史: LESS & Sass LESS是受Sass启发而开发的工具,它列出了如下开发的理由:"为什么要开发一个Sass的替代品呢?原因很简单:首先是语 ...
- 揭秘罗永浩直播带货幕后之师
鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 2020年4月1日那一天,罗永浩没有重新定义20点. 无论是他"一个理想主义创业者"演讲的老观众,还是锤子科技新品发布会 ...
- Bit-Z召开全球生态联盟暨韩国战略发布会 将成立BZ资本
11月16日,Bit-Z全球生态联盟暨韩国战略布局发布会在首尔顺利召开.本次大会是Bit-Z继集团战略升级后的首次亮相,集团CEO长顺.COO于洋分别就BZ资本成立和集团发展战略进行解析.现场精英大咖 ...
- SAP-R3被取代,苏宁采购平台的升级和架构演进之路
前言 在"智慧零售大开发"的战略驱动下,2018 年苏宁新开门店超过 8000 家,目前各类门店总数已经超过 1.1 万家,在线下形成了"两大两小多专"的智慧零 ...
- DCOS :私有云的物理基础架构管理引擎
https://cloud.tencent.com/developer/article/1005598 一.引言 云计算经过多年的发展,逐渐从概念到渐为人认知.到接受.到现在全行业拥抱上云,云的客户也 ...
- JavaScript常见面试题
javascript面试题 1.你能描述一下渐进增强和优雅降级之间的不同吗? 优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作.由于 ...
- 【观察】英特尔:视频行业最佳“合伙人”
申耀的科技观察 读懂科技,赢取未来! 过去几年,视频行业的创新一浪接着一浪.从最早的搜狐视频.爱奇艺和优酷为代表的点播平台,到花椒.映客和斗鱼为代表的直播平台,再到快手.抖音为代表的短视频平台.可以说 ...
- 常见前端九十道面试题及答案-韩烨
前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上面没有答案,我就整理了一下,从网上找了一些相关问题的答案.里面有一部分问题的答案我也没有进行考证 ...
最新文章
- 用python解“12-24小时制”题
- php捕获Fatal error错误与异常处理
- flex和box、flexbox高度自适应常见坑
- 批量设置Service Order成transferred状态
- 非阻塞模式(ioctlsocket)
- 摄影灵感|轮廓趋势,剪影以一种主要的方式回来了。
- pythonlambda回调函数_Python中如何借助lambda来给回调函数传参
- Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
- 数字电子技术基础-阎石老师版本-学习记录
- 「快闪群」批量成交攻略
- 需求挖掘的十三种方法
- 买服务器不做网站需要备案吗,买服务器需要备案吗
- 自然语言理解(三)—— 逻辑形式语言
- SQLServer2008 快捷键集合
- 算法手撕代码46~50
- 智慧营区管理系统软件:提供智慧营区一体化平台解决方案
- P4965 薇尔莉特的打字机
- 小米9刷twrp并安装Magisk(面具)
- 利用JA3和JA3S识别加密数据流量
- 上海交大计算机系招生名额,上海交通大学新增人工智能专业 目前有45所高校开设...