diff options
Diffstat (limited to 'examples/websocket_chat.py')
| -rw-r--r-- | examples/websocket_chat.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/examples/websocket_chat.py b/examples/websocket_chat.py new file mode 100644 index 0000000..7f7e3ea --- /dev/null +++ b/examples/websocket_chat.py @@ -0,0 +1,34 @@ +import eventlet +from eventlet import wsgi +from eventlet import websocket + +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')]) + return [open(os.path.join( + os.path.dirname(__file__), + 'websocket_chat.html')).read()] + +if __name__ == "__main__": + # run an example app from the command line + listener = eventlet.listen(('127.0.0.1', 7000)) + print "\nVisit http://localhost:7000/ in your websocket-capable browser.\n" + wsgi.server(listener, dispatch) |
