"""This is a simple example of running a wsgi application with evy. For a more fully-featured server which supports multiple processes, multiple threads, and graceful code reloading, see: http://pypi.python.org/pypi/Spawning/ """ import evy from evy.web import wsgi def hello_world(env, start_response): if env['PATH_INFO'] != '/': start_response('404 Not Found', [('Content-Type', 'text/plain')]) return ['Not Found\r\n'] start_response('200 OK', [('Content-Type', 'text/plain')]) return ['Hello, World!\r\n'] wsgi.server(evy.listen(('', 8090)), hello_world)
participants = set() @websocket.WebSocketWSGI def handle (ws): participants.add(ws) try: while True: m = ws.wait() if m is None: break for p in participants: p.send(m) finally: participants.remove(ws) def dispatch (environ, start_response): """Resolves to the web page or the websocket depending on the path.""" if environ['PATH_INFO'] == '/chat': return handle(environ, start_response) else: start_response('200 OK', [('content-type', 'text/html')]) html_path = os.path.join(os.path.dirname(__file__), 'websocket_chat.html') return [open(html_path).read() % {'port': PORT}] if __name__ == "__main__": # run an example app from the command line listener = evy.listen(('127.0.0.1', PORT)) print "\nVisit http://localhost:7000/ in your websocket-capable browser.\n" wsgi.server(listener, dispatch)
""" This is the websocket handler function. Note that we can dispatch based on path in here, too.""" if ws.path == "/echo": while True: m = ws.wait() if m is None: break ws.send(m) elif ws.path == "/data": for i in xrange(10000): ws.send("0 %s %s\n" % (i, random.random())) evy.sleep(0.1) def dispatch(environ, start_response): """ This resolves to the web page or the websocket depending on the path.""" if environ["PATH_INFO"] == "/data": return handle(environ, start_response) else: start_response("200 OK", [("content-type", "text/html")]) return [open(os.path.join(os.path.dirname(__file__), "websocket.html")).read()] if __name__ == "__main__": # run an example app from the command line listener = evy.listen(("127.0.0.1", 7000)) print "\nVisit http://localhost:7000/ in your websocket-capable browser.\n" wsgi.server(listener, dispatch)
"""This is a simple example of running a wsgi application with evy. For a more fully-featured server which supports multiple processes, multiple threads, and graceful code reloading, see: http://pypi.python.org/pypi/Spawning/ """ import evy from evy.web import wsgi def hello_world (env, start_response): if env['PATH_INFO'] != '/': start_response('404 Not Found', [('Content-Type', 'text/plain')]) return ['Not Found\r\n'] start_response('200 OK', [('Content-Type', 'text/plain')]) return ['Hello, World!\r\n'] wsgi.server(evy.listen(('', 8090)), hello_world)