jsonrpcserver,其中包含模块中的方法

时间:2019-11-22 19:22:45

标签: python json-rpc

我想知道如何使用jsonrpcserver软件包(> = 4.0)处理另一个python文件中的方法。

在我的示例中,添加jsonrpcserver的文件中的方法'ping'正在工作。 但我也想将'a.py'中的'hello'命名为'a.hello'。当从“ client.py”中使用“ hello”调用时,它可以工作,但我不知道如何将其作为“ a.ping”来实现。

server.py

取自示例(https://jsonrpcserver.readthedocs.io/en/latest/examples.html#aiohttp

#! /usr/bin/python3

from aiohttp import web
from jsonrpcserver import method, async_dispatch as dispatch
import a

@method
async def ping():
    return "pong"


async def handle(request):
    request = await request.text()
    response = await dispatch(request)
    if response.wanted:
        return web.json_response(response.deserialized(), status=response.http_status)
    else:
        return web.Response()


app = web.Application()
app.router.add_post("/", handle)

if __name__ == "__main__":
    web.run_app(app, port=5000)

a.py

在这里,我想使用一个名为“ a.hello”的方法。但是,方法名称将为“ hello”。

from jsonrpcserver import method

@method
async def hello():
    return "world"

client.py

#! /usr/bin/python3

from jsonrpcclient.clients.http_client import HTTPClient

client = HTTPClient("http://localhost:5000")
response = client.request("ping")
print(response.data.result)

response = client.request("a.hello") # this is what I would like to have
print(response.data.result)

0 个答案:

没有答案