Wie kann ich TXJSON-RPC-Anrufe mit einem JavaScript-Client und Python-Server debuggen?

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

  •  27-10-2019
  •  | 
  •  

Frage

Ich habe eine WXPython -App implementiert, die auch einen verdrehten TXJSONRPC -Server enthält. Dies ist mein RPC "Server"; Ich kann es mit einem TCP -Socket und Ausgabenbefehlungen anrufen.

Es gibt ein Python -Testskript mit dem Namen client_subhandled.py in TXJSONRPC, das ich früher getestet habe, und es ruft und empfängt eine Antwort vom RPC -Server, sodass die Python -Client/Server -Kommunikation funktioniert.

Ich muss jedoch JSON RPC -Anrufe von JavaScript, nicht von Python, tätigen. Dazu habe ich ein kleines Java -Applet verwendet, mit dem Sie einen TCP -Socket aus JavaScript öffnen und an/von It (java_socket_bridge.js) lesen und schreiben können. Dies funktioniert auch. Ich habe es nicht mit dem JSON -RPC -Protokoll getestet, sondern einfaches Text mit einem einfachen verdrehten Echo -Protokoll gesendet und empfangen.

Das Problem ist, dass ich mit JavaScript als Client keine RPC -JSON -Anrufe zum Laufen bringen kann. Gibt es eine Möglichkeit, eingehende JSON -RPC -Anrufe in TXJSONRPC zu debuggen? Ich würde idealerweise gerne sehen, welche JSON -Objekte auf dem Server eintreten, um zu sehen, ob sie konform sind.

Vielen Dank!

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()
War es hilfreich?

Lösung

Haben Sie versucht zu verwenden Wireshark ?

Seien Sie vorsichtig, es scheint, als ob es einige Probleme gibt, wenn sie auf Localhost erfasst werden;)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top