JavaScriptクライアントとPythonサーバーを使用してTXJSON-RPC呼び出しをデバッグするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/8838334

  •  27-10-2019
  •  | 
  •  

質問

wxpythonアプリを実装しました。これには、txjsonrpcサーバーが描かれています。これが私のRPC「サーバー」です。 TCPソケットと発行コマンドを使用してそれを呼び出すことができます。

TXJSONRPCにはclient_subhandled.pyというpythonテストスクリプトがあり、テストに使用していたため、RPCサーバーから回答を呼び出して受信するため、Pythonクライアント/サーバー通信が機能します。

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

問題は、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()
役に立ちましたか?

解決

使用してみましたか Wireshark ?

注意してください、LocalHostでキャプチャするときにいくつかの問題があるようです;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top