heroku-python / flask-sockets

[DEPRECATED] Alternative: https://github.com/miguelgrinberg/flask-sock
MIT License
1.74k stars 167 forks source link

How to use flask debug mode? #48

Closed vapao closed 7 years ago

vapao commented 7 years ago

When use flask-sockets, start with the sample code

if __name__ == "__main__":
    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler
    server = pywsgi.WSGIServer(('', 5000), app, handler_class=WebSocketHandler)
    server.serve_forever()

The flask debug mode is invalid, can't reload after code change, help me.

gmyers18 commented 7 years ago

I've used something like the following. It's been awhile since I worked on this, but I believe it allowed me to both auto-reload and get the usual Flask debug trace in a browser.

from gevent import pywsgi
from geventwebsocket.handler import WebSocketHandler

# https://coderwall.com/p/q2mrbw/gevent-with-debug-support-for-flask
from werkzeug.serving import run_with_reloader
from werkzeug.debug import DebuggedApplication

# If using PyCharm enable Gevent debugging support under:
#   Settings->Build, Execution, Deployment->Python Debugger
from gevent import monkey
monkey.patch_all()

def run_server():
    if app.debug:
        application = DebuggedApplication(app)
    else:
        application = app

    server = pywsgi.WSGIServer(('0.0.0.0', 5000), application,
                               handler_class=WebSocketHandler)
    server.serve_forever()

if __name__ == "__main__":
    run_with_reloader(run_server)
vapao commented 7 years ago

@gmyers18 Thanks, is perfect.