diff options
Diffstat (limited to 'testing/web-platform/tests/tools/third_party/websockets/example/deployment/supervisor/app.py')
-rw-r--r-- | testing/web-platform/tests/tools/third_party/websockets/example/deployment/supervisor/app.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/third_party/websockets/example/deployment/supervisor/app.py b/testing/web-platform/tests/tools/third_party/websockets/example/deployment/supervisor/app.py new file mode 100644 index 0000000000..bf61983ef7 --- /dev/null +++ b/testing/web-platform/tests/tools/third_party/websockets/example/deployment/supervisor/app.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +import asyncio +import signal + +import websockets + + +async def echo(websocket): + async for message in websocket: + await websocket.send(message) + + +async def main(): + # Set the stop condition when receiving SIGTERM. + loop = asyncio.get_running_loop() + stop = loop.create_future() + loop.add_signal_handler(signal.SIGTERM, stop.set_result, None) + + async with websockets.serve( + echo, + host="", + port=8080, + reuse_port=True, + ): + await stop + + +if __name__ == "__main__": + asyncio.run(main()) |