31 lines
1023 B
Python
31 lines
1023 B
Python
import importlib
|
|
import sys
|
|
|
|
from eventlet import sleep
|
|
from eventlet.websocket import WebSocketWSGI as _WebSocketWSGI
|
|
|
|
|
|
class WebSocketWSGI(_WebSocketWSGI):
|
|
def __init__(self, *args, **kwargs):
|
|
super(WebSocketWSGI, self).__init__(*args, **kwargs)
|
|
self._sock = None
|
|
|
|
def __call__(self, environ, start_response):
|
|
if 'eventlet.input' not in environ:
|
|
raise RuntimeError('You need to use the eventlet server. '
|
|
'See the Deployment section of the '
|
|
'documentation for more information.')
|
|
self._sock = environ['eventlet.input'].get_socket()
|
|
return super(WebSocketWSGI, self).__call__(environ, start_response)
|
|
|
|
|
|
_async = {
|
|
'threading': importlib.import_module('eventlet.green.threading'),
|
|
'thread_class': 'Thread',
|
|
'queue': importlib.import_module('eventlet.queue'),
|
|
'queue_class': 'Queue',
|
|
'websocket': sys.modules[__name__],
|
|
'websocket_class': 'WebSocketWSGI',
|
|
'sleep': sleep
|
|
}
|