Beispiel #1
0
 def server_close(self):
     """
     Properly initiate closing handshakes on
     all websockets when the WSGI server terminates.
     """
     print "closing sockets"
     _WSGIServer.server_close(self)
Beispiel #2
0
def run(create_publisher, host='', port=80, handler_class=RequestHandler):
    """Runs a Quixote application using the simple server from wsgiref."""
    publisher = create_publisher()
    app = QWIP(publisher)
    server = WSGIServer((host, port), handler_class)
    server.set_app(app)
    try:
        server.serve_forever()
    finally:
        server.server_close()
Beispiel #3
0
 def server_close(self):
     """
     Properly initiate closing handshakes on
     all websockets when the WSGI server terminates.
     """
     if hasattr(self, 'manager'):
         self.manager.close_all()
         self.manager.stop()
         self.manager.join()
         delattr(self, 'manager')
     _WSGIServer.server_close(self)
Beispiel #4
0
class _HTTPServer(bottle.ServerAdapter):
    """
    Reimplement bottle's WSGIRefServer. Override the request handler class and
    add a stop() method for cleanly shutting down the server.
    """
    srv = None
    app = None

    def run(self, handler):
        # Handle the TIME_WAIT state for quick server restarts
        WSGIServer.allow_reuse_address = 1

        # Create the server and start it
        self.srv = WSGIServer((self.host, self.port), _HTTPRequestHandler)
        self.srv.set_app(self.app)
        try:
            self.srv.serve_forever()
        finally:
            self.srv.server_close()

    def stop(self):
        if self.srv:
            self.srv.shutdown()