diff --git a/compose.yml b/compose.yml index 10ad697..a262e4b 100644 --- a/compose.yml +++ b/compose.yml @@ -10,11 +10,14 @@ services: # the websocket-server websocket-server: stop_grace_period: 1s + restart: always environment: PYTHONUNBUFFERED: true build: 'websocket-server' expose: - 1080 + volumes: + - ./websocket-server/entrypoint.py:/mnt/entrypoint.py # the client client-test-websocket: stop_grace_period: 1s diff --git a/websocket-server/entrypoint.py b/websocket-server/entrypoint.py index d24c394..069c45f 100755 --- a/websocket-server/entrypoint.py +++ b/websocket-server/entrypoint.py @@ -1,22 +1,36 @@ #!/usr/bin/env python import asyncio - +import signal +import sys +import json from websockets.asyncio.server import serve +connected_clients = set() + + +def sigterm_handler(_signo, _stack_frame): + # Raises SystemExit(0): + sys.exit(0) + + async def server(websocket): - msg = await websocket.recv() - print(f"IN : {msg}") - - answer = f"echoing {msg}" - - await websocket.send(answer) - print(f"OUT: {answer}") + print("the handler ist called",websocket.remote_address,"vars",json.dumps(websocket.__dict__,indent=4,default=lambda o: '')); +# while True: +# msg = await websocket.recv() +# print(f"IN : {msg}") +# +# answer = f"echoing {msg}" +# +# await websocket.send(answer) +# print(f"OUT: {answer}") async def main(): async with serve(server, "0.0.0.0", 1080): await asyncio.get_running_loop().create_future() if __name__ == "__main__": + signal.signal(signal.SIGTERM, sigterm_handler) + print('AAAAANOWAAAsaa is this') asyncio.run(main()) diff --git a/websocket-server/entrypoint.sh b/websocket-server/entrypoint.sh index a55b7bb..cb1215f 100755 --- a/websocket-server/entrypoint.sh +++ b/websocket-server/entrypoint.sh @@ -1,5 +1,22 @@ #!/bin/sh +set -x +safeexec() { + CMD="$1" + shift + test -x "$CMD" && exec "$CMD" "$@" +} test "" = "$*" || { exec "$@"; } -echo "running /entrypoint.py" -exec /entrypoint.py +safeexec /mnt/entrypoint.py || safeexec /entrypoint.py +# +#trap "true" USR2 +#while true +#do +# echo "running /entrypoint.py" +# ( /mnt/entrypoint.py || /entrypoint.py ) & +# THEPID=$! +# wait +# test "$?" -gt 128 && { +# kill "$THEPID" +# } || break +#done