Python Twisted JSON RPC

19 投票
5 回答
15579 浏览
提问于 2025-04-16 10:15

有没有人能推荐一些简单的代码,用来用twisted搭建一个简单的JSON RPC客户端和服务器?

我找到了一些叫txJSON-RPC的东西,但我想知道有没有人用过这些,能推荐一下吗?

5 个回答

0

Cyclone 是一个基于 Tornado 的异步网络服务器,它是用 twisted 这个库写的。Cyclone 内置了一个处理 json-rpc 请求的功能,这个功能使用了 Python 的 json 或 simplejson 模块。如果你想看看示例的服务器和客户端代码,可以在 这里 找到。

2

如果你想要一种不依赖于特定框架的方法,可以看看我推荐的这个库,它是我开发的,使用了混入(mixin)的技术,可能会对你有帮助:

21

txJSONRPC非常不错。我用过,效果很好。我建议你也试试。

服务器:

from txjsonrpc.web import jsonrpc
from twisted.web import server
from twisted.internet import reactor

class Math(jsonrpc.JSONRPC):
    """
    An example object to be published.
    """
    def jsonrpc_add(self, a, b):
        """
        Return sum of arguments.
        """
        return a + b

reactor.listenTCP(7080, server.Site(Math()))
reactor.run()

客户端:

from twisted.internet import reactor
from txjsonrpc.web.jsonrpc import Proxy

def printValue(value):
    print "Result: %s" % str(value)

def printError(error):
    print 'error', error

def shutDown(data):
    print "Shutting down reactor..."
    reactor.stop()

proxy = Proxy('http://127.0.0.1:7080/')

d = proxy.callRemote('add', 3, 5)
d.addCallback(printValue).addErrback(printError).addBoth(shutDown)
reactor.run()

另外,我还推荐一个替代方案:amp。 http://amp-protocol.net

撰写回答