def eventletHandler(environ, start_response): pathlist = filter(bool, environ["PATH_INFO"].split("/")) session = pathlist[0] if session == "info": headers = {"Content-Type": "text/plain"} start_response("200 OK", headers.items()) output = [ "Things seem to be running smoothly. There are currently %s document(s) running." % len(list(pyscxml.sm_mapping)), "Session\t\tConfiguration\t\tisFinished" ] for sessionid, sm in pyscxml.sm_mapping.items(): output.append("%s\t\t%s\t\t%s" % (sessionid, "{" + ", ".join([ s.id for s in sm.interpreter.configuration if s.id != "__main__" ]) + "}", sm.isFinished())) return ["\n".join(output)] type = pathlist[1] if type == "websocket": handler = websocket.WebSocketWSGI(pyscxml.websocket_handler) return handler(environ, start_response) else: return pyscxml.request_handler(environ, start_response)
def __init__(self, app, wsgi_app, manager: 'IoTManager'): """ Manager middleware for WSGI. :param app: Flask App object. :param wsgi_app: Flask App WSGI object. :param manager: IoTManager object. """ self.app = app self.wsgi_app = wsgi_app self.manager = manager # eventlet websocket server handler self.ws = websocket.WebSocketWSGI(self.socket)
def __init__(self, consumer, env): self._consumer = consumer self._env = env self.handle = websocket.WebSocketWSGI(self.handle)
elif ws.path == '/range': for i in range(10): ws.send("msg %d" % i) eventlet.sleep(0.01) elif ws.path == '/error': # some random socket error that we shouldn't normally get raise socket.error(errno.ENOTSOCK) else: ws.close() # Set a lower limit of DEFAULT_MAX_FRAME_LENGTH for testing, as # sending an 8MiB frame over the loopback interface can trigger a # timeout. TEST_MAX_FRAME_LENGTH = 50000 wsapp = websocket.WebSocketWSGI(handle, max_frame_length=TEST_MAX_FRAME_LENGTH) class TestWebSocket(tests.wsgi_test._TestBase): TEST_TIMEOUT = 5 def set_site(self): self.site = wsapp def test_incomplete_headers_13(self): headers = dict( kv.split(': ') for kv in [ "Upgrade: websocket", # NOTE: intentionally no connection header "Host: %s:%s" % self.server_addr, "Origin: http://%s:%s" % self.server_addr,
m = ws.wait() if m is None: break ws.send(m) elif ws.path == '/range': for i in range(10): ws.send("msg %d" % i) eventlet.sleep(0.01) elif ws.path == '/error': # some random socket error that we shouldn't normally get raise socket.error(errno.ENOTSOCK) else: ws.close() wsapp = websocket.WebSocketWSGI(handle) class TestWebSocket(tests.wsgi_test._TestBase): TEST_TIMEOUT = 5 def set_site(self): self.site = wsapp def test_incomplete_headers_13(self): headers = dict( kv.split(': ') for kv in [ "Upgrade: websocket", # NOTE: intentionally no connection header "Host: %s:%s" % self.server_addr, "Origin: http://%s:%s" % self.server_addr,
def handle_websocket(self, environ, start_response): wsock = websocket.WebSocketWSGI(self._handle_websocket) wsock(environ, start_response)