import asyncio
import websockets

counter = 0
connected_clients = set()

async def counter_server(websocket, path):
    global counter
    connected_clients.add(websocket)
    try:
        await websocket.send(str(counter))
        async for message in websocket:
            if message == 'increment':
                counter += 1
                # Отправляем обновление счетчика всем клиентам
                await asyncio.gather(*[client.send(str(counter)) for client in connected_clients])
    finally:
        connected_clients.remove(websocket)

def run_server():
    PORT = 8765
    start_server = websockets.serve(counter_server, "178.44.100.206", PORT)
    asyncio.get_event_loop().run_until_complete(start_server)
    print(f'Server started on ws://http://178.44.100.206/:{PORT}')
    asyncio.get_event_loop().run_forever()

if __name__ == '__main__':
    run_server()