| #!/usr/bin/env python | |
| # | |
| # Simple websocket server to perform signaling. | |
| # | |
| import asyncio | |
| import binascii | |
| import os | |
| import websockets | |
| clients = {} | |
| async def echo(websocket, path): | |
| client_id = binascii.hexlify(os.urandom(8)) | |
| clients[client_id] = websocket | |
| try: | |
| async for message in websocket: | |
| for c in clients.values(): | |
| if c != websocket: | |
| await c.send(message) | |
| finally: | |
| clients.pop(client_id) | |
| asyncio.get_event_loop().run_until_complete(websockets.serve(echo, "0.0.0.0", 8765)) | |
| asyncio.get_event_loop().run_forever() | |