compatibility websocket server / add non ssl echo_server which does not run into the ssl error (#140)

This commit is contained in:
Benjamin Sergeant 2020-01-12 10:34:33 -08:00
parent 4cb3326078
commit a8ff91ac3c
6 changed files with 1448 additions and 7 deletions

View File

@ -1,6 +1,9 @@
FROM python:3.8.0-alpine3.10
RUN pip install websockets
COPY vendor/protocol.py /usr/local/lib/python3.8/site-packages/websockets/protocol.py
COPY *.py /usr/bin/
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/*.py

View File

@ -3,6 +3,7 @@
# WS server example
import asyncio
import os
import websockets
@ -11,9 +12,10 @@ async def echo(websocket, path):
print(f'Received {len(msg)} bytes')
await websocket.send(msg)
host = os.getenv('BIND_HOST', 'localhost')
print(f'Serving on {host}:8766')
print('Serving on localhost:8766')
start_server = websockets.serve(echo, 'localhost', 8766, max_size=2 ** 25)
start_server = websockets.serve(echo, host, 8766, max_size=2 ** 30)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

View File

@ -18,8 +18,9 @@ ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ssl_context.load_cert_chain('trusted-server-crt.pem',
'trusted-server-key.pem')
print('Serving on localhost:8766')
host = os.getenv('BIND_HOST', 'localhost')
print(f'Serving on {host}:8766')
start_server = websockets.serve(echo, host, 8766, max_size=2 ** 30, ssl=ssl_context)
asyncio.get_event_loop().run_until_complete(start_server)

View File

@ -2,9 +2,9 @@
case $MODE in
echo_server)
./echo_server.py
python /usr/bin/echo_server.py
;;
ssl)
echo_server_ssl)
python /usr/bin/echo_server_ssl.py
;;
esac

View File

@ -22,5 +22,8 @@ docker_push:
docker push ${LATEST}
docker push ${IMG}
ssl_server:
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=ssl -it --rm bsergean/echo_server:build
server:
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=echo_server -it --rm bsergean/echo_server:build
server_ssl:
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=echo_server_ssl -it --rm bsergean/echo_server:build

File diff suppressed because it is too large Load Diff