python jsonrpc_jsonrpc使用
jsonrpc使用
1.什么是rpc
RPC(Remote Procedure Call)远程过程调用,简单说就是通过网络请求服务,不需要了解底层网络技术的协议。
常用语分布式应用程序。
2.rpc数据传递格式
rpc支持多种数据格式传递,json,xml等
3.tornado中使用jsonrpc示例
安装服务端包,客户端包
pip install tornado jsonrpcserver
pip install tornado jsonrpcclient
服务端程序如下:
from tornado import ioloop, web
from jsonrpcserver.aio import methods
from jsonrpcserver.response import NotificationResponse
@methods.add
async def ping():
return "pong"
class RpcTestHandler(web.RequestHandler):
async def post(self):
request = self.request.body.decode()
response = await methods.dispatch(request)
if not response.is_notification:
self.write(response)
运行,开始监听
客户端程序如下:
# 同步请求
import jsonrpcclient
jsonrpcclient.request('http://localhost:20000/test_rpc', 'ping')
运行结果如下:
E:\gitcode\tornado-test>python test.py
--> {"jsonrpc": "2.0", "method": "ping", "id": 1}
# 异步请求
from tornado import ioloop
from jsonrpcclient.tornado_client import TornadoClient
client = TornadoClient('http://localhost:20000/test_rpc')
async def main():
result = await client.request('ping')
print(result)
ioloop.IOLoop.current().run_sync(main)
运行结果如下:
E:\gitcode\tornado-test>python test.py
INFO:jsonrpcclient.client.request:{"jsonrpc": "2.0", "method": "ping", "id": 1}
INFO:jsonrpcclient.client.response:{"jsonrpc": "2.0", "result": "pong", "id": 1}
pong
4.http请求,rpc请求区别
http协议是支持长连接的,因此和rpc的自定义tcp报文协议相比,连接上没有太大区别,
区别在于自定义tcp报文做了优化处理,去除了很多无用信息,这是因为rpc是面向服务的。
python jsonrpc_jsonrpc使用相关推荐
- Github配置(git+vscode+python+jupyter)
①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...
- 【实验楼】python简明教程
①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...
- 【Kaggle Learn】Python 5-8
五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- 使用python愉快地做高数线代题目~
今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...
- python 位运算与等号_Python 运算符
和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...
- python减小内存占用_如何将Python内存占用缩小20倍?
当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...
- python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...
本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...
- python程序如何执行死刑图片_如何判断对象已死
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...
- Python gRPC 安装
1. 安装依赖库 sudo pip3 install grpcio sudo pip3 install protobuf sudo pip3 install grpcio_tools 2. 生成对应文 ...
最新文章
- hbase redis mongoddb neo4j 非关系型数据库简介
- 首次使用计算机鼠标键盘不能用,解决方案:如何解决无法使用计算机鼠标和键盘的问题?如果启动后无法使用鼠标和键盘该怎么办?...
- 一些挺不错的visualstudio主题样式
- 数据类别不平衡/长尾分布?不妨利用半监督或自监督学习
- java发送http跨域_跨域发送HTTP请求详解
- TCP:一个悲伤的故事
- ASCII码表 0~127
- 1月3日 接触ROS
- 北风网VIP6级学习视频地址
- 电脑上免费的录屏软件有哪些?分享六款录屏小工具,超好用
- 计算机速录专业教学计划,计算机信息与速录技术专业二年制教学计划.doc
- 关于linux打包以及解压到指定目录的简单操作demo
- 注册表删除方式解决Navicat到期问题
- java计算工作日,排除周末以及法定假日
- 2021-2027全球与中国Al2O3氧化铝陶瓷基板白板市场现状及未来发展趋势
- python中等好用什么表示_Python十大装B语法!你会几种?
- arm方案商,三星S5P6818开发板ARM Cortex-A53架构
- T-SNE可视化高维数据,亮瞎审稿人
- 苹果电脑IOS ssh远程关机
- USB3.0高清采集卡/HDMI TO USB3.0/ps4/5/ns/ipad平板游戏直播手游吃鸡录制相机摄像机抖音电商视频带货hdmi采集
热门文章
- Android Canvas.DrawLine绘制线段
- 关于vs2008 SP1中CMFCToolBar的一些事儿
- tr069开源代码文档_tr069开源代码——cwmp移植
- 毫米波雷达及其应用精炼介绍
- UE4学习-初识虚幻引擎(下载、安装、重定向问题、安装引擎、启动)
- 让 Chrome 57 支持迅雷精简版
- 酒店产生蜱虫原因及如何处理
- 苹果电脑怎么安装计算机一级,苹果系统安装教程,详细教您苹果电脑怎么重装系统...
- ENVI下Landsat8辐射定标与大气校正
- 【工作笔记001】SuperMap配准TransCAD底图