json-rpc 2.0的python库
aiobsonrpc的Python项目详细描述
aiobsonrpc
bsonrpc用于异步。
Python3.5+
开始
安装
pip install aiobsonrpc
示例
服务器
importasyncioimportaiobsonrpc@aiobsonrpc.service_classclassEchoService(object):@aiobsonrpc.aio_rpc_requestasyncdefecho(self,_,data):awaitasyncio.sleep(1)returndataasyncdefon_connected(reader,writer):aiobsonrpc.JSONRpc(reader,writer,services=EchoService())if__name__=='__main__':loop=asyncio.get_event_loop()server=asyncio.start_server(on_connected,'0.0.0.0',6789,loop=loop)loop.create_task(server)loop.run_forever()
客户
importasyncioimportaiobsonrpcasyncdefdo_connect():reader,writer=awaitasyncio.open_connection('localhost',6789,loop=loop)rpc=aiobsonrpc.JSONRpc(reader,writer)peer=rpc.get_peer_proxy(timeout=5)result=awaitpeer.echo(123)print(result)# 123if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(do_connect())