28 lines
918 B
Python
28 lines
918 B
Python
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() |