def run (settings): host = '0.0.0.0' # settings.get('connection', 'host') port = settings.getint('connection', 'port') State.init_settings(web_url = settings.get('main', 'web_url')) db.init(sqlalchemy.engine_from_config({ 'sqlalchemy.url': settings.get('database', 'url'), }), {}) logger.info("listening on ws://%s:%s", host, port) websocket_server = gevent.pywsgi.WSGIServer((host, port), websocket_app, handler_class = QuietWebSocketHandler) websocket_server.set_environ({ 'server': websocket_server, }) websocket_server.start() try: websocket_server.serve_forever() except KeyboardInterrupt: logger.info("interrupted") else: logger.info("[!] stopped due to error")