test broadcast server
This commit is contained in:
parent
8ed7c660d4
commit
0c4866420a
36
test/compatibility/python/websockets/broadcast_server.py
Normal file
36
test/compatibility/python/websockets/broadcast_server.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# WS server example
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
import os
|
||||||
|
import websockets
|
||||||
|
|
||||||
|
|
||||||
|
clients = set()
|
||||||
|
|
||||||
|
|
||||||
|
async def echo(websocket, path):
|
||||||
|
clients.add(websocket)
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
msg = await websocket.recv()
|
||||||
|
|
||||||
|
for ws in clients:
|
||||||
|
if ws != websocket:
|
||||||
|
print(f'Sending {len(msg)} bytes to {ws}')
|
||||||
|
await ws.send(msg)
|
||||||
|
except websockets.exceptions.ConnectionClosedOK:
|
||||||
|
print('Client terminating')
|
||||||
|
clients.remove(websocket)
|
||||||
|
|
||||||
|
|
||||||
|
host = os.getenv('BIND_HOST', 'localhost')
|
||||||
|
print(f'Serving on {host}:8766')
|
||||||
|
|
||||||
|
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()
|
||||||
|
|
43
test/compatibility/python/websockets/broadcast_server_ssl.py
Normal file
43
test/compatibility/python/websockets/broadcast_server_ssl.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# WS server example
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
import os
|
||||||
|
import pathlib
|
||||||
|
import ssl
|
||||||
|
import websockets
|
||||||
|
|
||||||
|
|
||||||
|
clients = set()
|
||||||
|
|
||||||
|
|
||||||
|
async def echo(websocket, path):
|
||||||
|
clients.add(websocket)
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
msg = await websocket.recv()
|
||||||
|
|
||||||
|
for ws in clients:
|
||||||
|
if ws != websocket:
|
||||||
|
print(f'Sending {len(msg)} bytes to {ws}')
|
||||||
|
await ws.send(msg)
|
||||||
|
except websockets.exceptions.ConnectionClosedOK:
|
||||||
|
print('Client terminating')
|
||||||
|
clients.remove(websocket)
|
||||||
|
|
||||||
|
|
||||||
|
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
|
||||||
|
ssl_context.load_cert_chain('trusted-server-crt.pem',
|
||||||
|
'trusted-server-key.pem')
|
||||||
|
|
||||||
|
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)
|
||||||
|
asyncio.get_event_loop().run_forever()
|
||||||
|
|
||||||
|
|
@ -7,4 +7,10 @@ case $MODE in
|
|||||||
echo_server_ssl)
|
echo_server_ssl)
|
||||||
python /usr/bin/echo_server_ssl.py
|
python /usr/bin/echo_server_ssl.py
|
||||||
;;
|
;;
|
||||||
|
broadcast_server)
|
||||||
|
python /usr/bin/broadcast_server.py
|
||||||
|
;;
|
||||||
|
broadcast_server_ssl)
|
||||||
|
python /usr/bin/broadcast_server_ssl.py
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -22,8 +22,14 @@ docker_push:
|
|||||||
docker push ${LATEST}
|
docker push ${LATEST}
|
||||||
docker push ${IMG}
|
docker push ${IMG}
|
||||||
|
|
||||||
server:
|
echo_server:
|
||||||
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=echo_server -it --rm bsergean/echo_server:build
|
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=echo_server -it --rm bsergean/echo_server:build
|
||||||
|
|
||||||
server_ssl:
|
echo_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
|
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=echo_server_ssl -it --rm bsergean/echo_server:build
|
||||||
|
|
||||||
|
broadcast_server:
|
||||||
|
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=broadcast_server -it --rm bsergean/echo_server:build
|
||||||
|
|
||||||
|
broadcast_server_ssl:
|
||||||
|
docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=broadcast_server_ssl -it --rm bsergean/echo_server:build
|
||||||
|
@ -102,7 +102,7 @@ namespace ix
|
|||||||
size_t bufferedAmount = client->bufferedAmount();
|
size_t bufferedAmount = client->bufferedAmount();
|
||||||
|
|
||||||
spdlog::info(
|
spdlog::info(
|
||||||
"{}: [client {}]: has readystate {} bytes left to be sent",
|
"{}: [client {}]: has readystate {} bytes left to be sent {}",
|
||||||
"ws_transfer",
|
"ws_transfer",
|
||||||
id,
|
id,
|
||||||
readyStateString,
|
readyStateString,
|
||||||
|
Loading…
Reference in New Issue
Block a user