我有一个flask + Gevent-socketio迷你网站。已启动:
app = Flask(__name__)
app.debug = True
@werkzeug.serving.run_with_reloader
def runServer():
print 'Listening on %s...' % WEB_PORT
ws = SocketIOServer(('0.0.0.0', WEB_PORT),
SharedDataMiddleware(app, {}),
resource="socket.io",
policy_server=False)
ws.serve_forever()但是,当我的视图中发生错误时,它会输出
<pre style="word-wrap: break-word; white-space: pre-wrap;">Internal Server Error</pre>而不是显示werkzeug调试器。而且,我的自定义@app.errorhandler(500)不会被调用。
这是在使用Gevent-socketio时发生的,常规的flask网站运行良好。
我想知道是什么在处理这个错误并取消默认的flask行为...
发布于 2013-09-29 22:54:46
我最近解决了这个问题,Werkzeug debuggger可以修改为使用socket.io命名空间(自动重新加载也可以),请看这里并享受:
发布于 2012-12-20 17:42:37
要查看werkzeug调试器,您必须使用standart中间件堆栈默认为所有http请求提供服务。
但是您为服务websockets请求启动了单独的SocketIOServer。
https://stackoverflow.com/questions/13964385
复制相似问题