我编写了一个机器人来监视游戏服务器,提供Web界面并通过套接字与客户端进行通信。到目前为止,所有这些工作都很好,用完了flask开发服务器。
[我很想让它与nginx一起使用,因为flask建议不要使用其集成的Web服务器(即使它看起来似乎很好)]
我完全不知所措。将此东西作为一个学习项目开始,并尝试自学。现在,我在这里遇到的东西看起来与示例,教程或文档中的东西都不一样,我什至不知道从哪里开始。
[所有文档和教程都谈到了为uwsgi-server之类的module:app提供入口点
但是这种结构对我来说并不存在。它更像是“ global_variable:instance_of_a_class:variable:app”
我已经尽力在这里简化了:
imports... class Webserver(Module): app = object websocket = object login_manager = object def get_module_identifier(): return "module_webserver" def run(self): app = Flask(__name__) app.config["SECRET_KEY"] = pulled_from_db login_manager = LoginManager() login_manager.init_app(app) self.app = app self.websocket = SocketIO( app, async_mode=pulled_from_db, debug=pulled_from_db, engineio_logger=pulled_from_db, use_reloader=pulled_from_db, passthrough_errors=True, ping_timeout=15, ping_interval=5 ) self.login_manager = login_manager websocket_instance = Thread( target=self.websocket.run, args=[self.app], kwargs={ "host": pulled_from_db, "port": pulled_from_db } ) websocket_instance.start() while not self.stopped.wait(self.next_cycle): ... do the modules tasks # modules get instantiated when their file gets imported loaded_modules_dict[Webserver().get_module_identifier()] = Webserver()
此类是按需加载的,可能并不总是存在。我怎样才能将此东西代理到Nginx?任何和所有建议,将不胜感激
我正在其他模块中使用这些东西,通过modules.webserver.whatever()调用类型对其进行引用
完整的代码在这里:link to my projects webserver module
我很害怕并且准备要更改项目的整个结构,但是如果有机会让它按原样工作,那就太好了。任何建议和技巧都将不胜感激-可悲的是,我什至还没有找到有关如何解决此问题的想法的开端。即使阅读了数小时的文档和示例,我对uwsgi的理解仍然很差。整个概念对我来说是陌生的:)
我唯一的想法是以某种方式选出这个模块,自己加载它,然后尝试将其传递给它。不,我一点都不知道。我知道有人问一个问题会提供他们尝试过的东西。但是我什至不知道从哪里开始思考。我担心我的整个项目过于自学,无法挽救:/
我编写了一个机器人来监视游戏服务器,提供Web界面并通过套接字与客户端进行通信。到目前为止,所有这些工作都很好,用完了flask开发服务器。我想...
我认为您在混淆两件事。