|
import asyncio |
|
import websockets |
|
|
|
clients = set() |
|
|
|
async def handler(websocket, path): |
|
clients.add(websocket) |
|
try: |
|
while True: |
|
data = await websocket.recv() |
|
if data: |
|
|
|
await asyncio.wait([client.send(data) for client in clients]) |
|
except websockets.exceptions.ConnectionClosed: |
|
pass |
|
finally: |
|
clients.remove(websocket) |
|
|
|
async def main(): |
|
server = await websockets.serve(handler, "0.0.0.0", 12345) |
|
print("WebSocket сервер запущен на порту 12345") |
|
await server.wait_closed() |
|
|
|
if __name__ == "__main__": |
|
asyncio.run(main()) |
|
|