diff --git a/flask_sockets.py b/flask_sockets.py index 64e19cf..1dcb4df 100644 --- a/flask_sockets.py +++ b/flask_sockets.py @@ -4,29 +4,17 @@ from werkzeug.routing import Map, Rule from werkzeug.exceptions import NotFound -def log_request(self): - log = self.server.log - if log: - if hasattr(log, 'info'): - log.info(self.format_request() + '\n') - else: - log.write(self.format_request() + '\n') - - # Monkeys are made for freedom. try: - import gevent from geventwebsocket.gunicorn.workers import GeventWebSocketWorker as Worker + from geventwebsocket.handler import WebSocketHandler + from gunicorn.workers.ggevent import PyWSGIHandler + + import gevent except ImportError: pass -if 'gevent' in locals(): - # Freedom-Patch logger for Gunicorn. - if hasattr(gevent, 'pywsgi'): - gevent.pywsgi.WSGIHandler.log_request = log_request - - class SocketMiddleware(object): def __init__(self, wsgi_app, app, socket): @@ -105,5 +93,13 @@ class Sockets(object): # CLI sugar. -if 'Worker' in locals(): +if ('Worker' in locals() and 'PyWSGIHandler' in locals() and + 'gevent' in locals()): + + class GunicornWebSocketHandler(PyWSGIHandler, WebSocketHandler): + def log_request(self): + if '101' not in self.status: + super(GunicornWebSocketHandler, self).log_request() + + Worker.wsgi_handler = GunicornWebSocketHandler worker = Worker diff --git a/setup.py b/setup.py index 23f1136..1d8822f 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ from setuptools import setup setup( name='Flask-Sockets', - version='0.2.1', + version='0.2.1.1', url='https://github.com/kennethreitz/flask-sockets', license='See License', author='Kenneth Reitz',