0

Twisted txJSONrpc サーバーも含む wxPython アプリを実装しました。これは私の RPC「サーバー」です。TCP ソケットを使用して呼び出し、コマンドを発行できます。

以前テストした txjsonrpc に client_subhandled.py という Python テスト スクリプトがあり、RPC サーバーを呼び出して応答を受け取るため、Python クライアント/サーバー通信が機能します。

ただし、Python からではなく、javascript から JSON RPC 呼び出しを行う必要があります。そのために、javascript から TCP ソケットを開き、そこから読み書きできる小さな Java アプレット (java_socket_bridge.js) を使用しました。これも機能します。JSON RPC プロトコルを使用せずに、単純なツイスト エコー プロトコルを使用してプレーン テキストを送受信することをテストしました。

問題は、javascript をクライアントとして使用すると、rpc JSON 呼び出しが機能しないように見えることです。txJSONrpc で着信 JSON rpc 呼び出しをデバッグする方法はありますか? 理想的には、どの JSON オブジェクトがサーバーに入ってくるかを確認して、それらが準拠しているかどうかを確認したいと考えています。

ありがとう!

from twisted.internet import wxreactor  # socket library
wxreactor.install()                     # for using twisted along with wxPython

# using netstring TCP protocol
from txjsonrpc.netstring import jsonrpc
from twisted.web import server

# import twisted reactor *only after* installing wxreactor
from twisted.internet import reactor

myreactor = reactor

def register(application):
    # initialise and run the TWISTED reactor
    reactor.registerWxApp(application)
    #rpcCom.myreactor.listenTCP(9000, rpcCom.EchoServerFactory())
    reactor.listenTCP(9000, factory)
    reactor.run()

class Example(jsonrpc.JSONRPC):
    """An example object to be published."""

    def jsonrpc_echo(self, x):
        """Return all passed args."""
        print "echo called"
        return x

class Testing(jsonrpc.JSONRPC):

    def jsonrpc_getList(self):
        """Return a list."""
        return [1,2,3,4,'a','b','c','d']

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

factory = jsonrpc.RPCFactory(Example)
factory.putSubHandler('math', Math)
factory.putSubHandler('testing', Testing)

factory.addIntrospection()
4

1 に答える 1

0

Wiresharkを使ってみましたか?

注意してください、ローカルホストでキャプチャするときにいくつかの問題があるようです ;)

于 2012-01-13T14:37:43.117 に答える