Как я могу отладить вызовы TXJSON-RPC с помощью клиента JavaScript и сервера Python?

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

  •  27-10-2019
  •  | 
  •  

Вопрос

Я внедрил приложение WXPYTHON, которое также имеет в нем скрученный сервер TXJSONRPC. Это мой RPC "сервер"; Я могу позвонить этому, используя сокет TCP и команды выпуска.

В txjsonrpc, который я использовал для тестирования, есть сценарий тестирования Python под названием Client_subhandled.py, который я использовал, и он вызывает и получает ответ с сервера RPC, поэтому Python Client/Server Communication работает.

Тем не менее, мне нужно сделать вызовы JSON RPC из JavaScript, а не из Python. Для этого я использовал небольшой Java -апплет, который позволяет вам открыть розетку TCP из JavaScript и читать и записать в/из него (java_socket_bridge.js). Это также работает, я проверил его не с помощью протокола JSON RPC, а отправка и получение простого текста с использованием простого протокола скрученного эха.

Проблема в том, что использование JavaScript в качестве клиента, я не могу заставить RPC JSON на работу. Есть ли способ отладки входящих RPC -звонков JSON в TXJSONRPC? В идеале я хотел бы увидеть, какие объекты 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()
Это было полезно?

Решение

Вы пробовали использовать Вирешарк ?

Будьте осторожны, кажется, что есть некоторые проблемы при захвате на Localhost;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top