test broadcast server
This commit is contained in:
		
							
								
								
									
										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, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user