[Twisted-web] simple example with xmlrpc server

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Sat Apr 16 17:41:13 EDT 2011


On 09:24 pm, bdfy at mail.ru wrote:
>
>I have simple example with xmlrpc server from standart python:
>
>from SimpleXMLRPCServer import SimpleXMLRPCServer
>from time import sleep
>import threading,time
>
>class Test(threading.Thread):
>    def __init__(self):
>        threading.Thread.__init__(self)
>        self.test1 = 0
>    def test(self):
>        return self.test1
>
>    def run(self):
>        while(1):
>            time.sleep(1)
>            self.test1 = self.test1 + 1
>
>ts = Test()
>ts.start()
>server =  SimpleXMLRPCServer(("localhost",8888))
>server.register_instance(ts)
>server.serve_forever()
>
>how it will look on Twisted ?

Something like this:

  from twisted.internet import reactor
  from twisted.internet.task import LoopingCall
  from twisted.web.xmlrpc import XMLRPC
  from twisted.web.server import Site

  class Counter(XMLRPC):
      def __init__(self):
          XMLRPC.__init__(self)
          self.value = 0
          LoopingCall(self._update).start(1, now=False)

      def _update(self):
          self.value += 1

      def xmlrpc_test(self):
          return self.value

  factory = Site(Counter())
  reactor.listenTCP(8888, factory, interface="localhost")
  reactor.run()

Jean-Paul



More information about the Twisted-web mailing list