質問

Twistedを使用して単純なJSON RPCクライアントとサーバーをセットアップするための簡単なコードをお勧めできますか?

TXJSON-RPCを見つけましたが、これらのANCのいくつかを使用した経験がある人が何かを推奨できるのではないかと思っていました。

役に立ちましたか?

解決

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

他のヒント

フレームワークに依存しないアプローチを探している場合、 このlib 私は(Mixinを使用して)プッシュするのが役立つかもしれません:

サイクロン, 、a 竜巻 Twistedを使用して記述されたAsync Webサーバーの実装には、Python JSON/SimpleJSONモジュールを使用するJSON-RPCリクエストハンドラーが組み込まれています。サンプルサーバーとクライアントコードはです ここ.

ウィキペディアには、Python用にリストされている多くの実装があります。 https://en.wikipedia.org/wiki/json-rpc#implementations

そうは言っても txjason Twistedと最も統合されたもののように感じます。たとえば、順調に回答していないようです。そのほとんどは、6つを使用してPython3に移植可能です。最も恐ろしい部分はパラメーター検証です。これは、通常のパブリックAPIではとにかく公開されていません。

私にとって、これはクライアントといえば「ライブラリ」よりもうまく機能しました。

    TESTDATA = {'id': 1234,
                'method': 'getbalance',
                }
    URL = 'http://localhost:7777'

    d= getPage(URL,method="POST",postdata=json.dumps(TESTDATA))
    d.addBoth(lambda x :print(json.loads(x)))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top