python - How to receive dbus signals when there is a webserver running forever? -


hey guys planning make webserver works dbus signal receiving. webserver runs gevent.wsgiserver because need support of websocket, while dbus handled via python-dbus package.

the question is:

  1. webserver has event loop running forever, receive dbus signals, python-dbus requires event loop (which mainloop) run forever well.
  2. i not able make webserver running while keeping snooping dbus signals.

here codes:

if __name__ == '__main__':     log = logging.getlogger('rocket.errors')     log.setlevel(logging.info)     log.addhandler(logging.streamhandler(sys.stdout))      dbus.mainloop.glib.dbusgmainloop(set_as_default=true)     bus = dbus.systembus()     app = bottle()      # register dbus recieve handler     #bus.add_signal_receiver(hostheartbeatsignal)     bus.add_signal_receiver(testsignal)      **this block webserver running!!!!!!!!**     mainloop = gobject.mainloop()     mainloop.run()      @app.route('/websocket', skip = true)     def handle_websocket():         print "entering websocket handling"         wsock = request.environ.get('wsgi.websocket')         if not wsock:             abort(400, 'expected websocket request.')         while true:             try:                 message = wsock.receive()                 print "message received"                 wsock.send("your message was: %r" % message)                 print "message sent"             except websocketerror:                 break       default_cert = os.path.join(sys.prefix, 'share',                     os.path.basename(__file__), 'cert.pem')      gevent.pywsgi import wsgiserver     geventwebsocket import websocketerror     geventwebsocket.handler import websockethandler      server = wsgiserver(("0.0.0.0", 443), app, keyfile = default_cert,                         certfile = default_cert,                          handler_class=websockethandler)     server.serve_forever() 

you can run 1 of main loops in thread.


Comments

Popular posts from this blog

android - Why am I getting the message 'Youractivity.java is not an activity subclass or alias' -

python - How do I create a list index that loops through integers in another list -

c# - “System.Security.Cryptography.CryptographicException: Keyset does not exist” when reading private key from remote machine -