compatibility websocket server / add non ssl echo_server which does not run into the ssl error (#140)
This commit is contained in:
		@@ -1,6 +1,9 @@
 | 
				
			|||||||
FROM python:3.8.0-alpine3.10
 | 
					FROM python:3.8.0-alpine3.10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN pip install websockets
 | 
					RUN pip install websockets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY vendor/protocol.py /usr/local/lib/python3.8/site-packages/websockets/protocol.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY *.py /usr/bin/
 | 
					COPY *.py /usr/bin/
 | 
				
			||||||
COPY entrypoint.sh /usr/bin/
 | 
					COPY entrypoint.sh /usr/bin/
 | 
				
			||||||
RUN chmod +x /usr/bin/*.py
 | 
					RUN chmod +x /usr/bin/*.py
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
# WS server example
 | 
					# WS server example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import asyncio
 | 
					import asyncio
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
import websockets
 | 
					import websockets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -11,9 +12,10 @@ async def echo(websocket, path):
 | 
				
			|||||||
    print(f'Received {len(msg)} bytes')
 | 
					    print(f'Received {len(msg)} bytes')
 | 
				
			||||||
    await websocket.send(msg)
 | 
					    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, host, 8766, max_size=2 ** 30)
 | 
				
			||||||
start_server = websockets.serve(echo, 'localhost', 8766, max_size=2 ** 25)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
asyncio.get_event_loop().run_until_complete(start_server)
 | 
					asyncio.get_event_loop().run_until_complete(start_server)
 | 
				
			||||||
asyncio.get_event_loop().run_forever()
 | 
					asyncio.get_event_loop().run_forever()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,8 +18,9 @@ ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
 | 
				
			|||||||
ssl_context.load_cert_chain('trusted-server-crt.pem',
 | 
					ssl_context.load_cert_chain('trusted-server-crt.pem',
 | 
				
			||||||
                            'trusted-server-key.pem')
 | 
					                            'trusted-server-key.pem')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print('Serving on localhost:8766')
 | 
					 | 
				
			||||||
host = os.getenv('BIND_HOST', 'localhost')
 | 
					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)
 | 
					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_until_complete(start_server)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,9 +2,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
case $MODE in
 | 
					case $MODE in
 | 
				
			||||||
    echo_server)
 | 
					    echo_server)
 | 
				
			||||||
        ./echo_server.py
 | 
					        python /usr/bin/echo_server.py
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    ssl)
 | 
					    echo_server_ssl)
 | 
				
			||||||
        python /usr/bin/echo_server_ssl.py
 | 
					        python /usr/bin/echo_server_ssl.py
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,5 +22,8 @@ docker_push:
 | 
				
			|||||||
	docker push ${LATEST}
 | 
						docker push ${LATEST}
 | 
				
			||||||
	docker push ${IMG}
 | 
						docker push ${IMG}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ssl_server:
 | 
					server:
 | 
				
			||||||
	docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=ssl -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:
 | 
				
			||||||
 | 
						docker run -p 8766:8766 -e BIND_HOST=0.0.0.0 -e MODE=echo_server_ssl -it --rm bsergean/echo_server:build
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1432
									
								
								test/compatibility/python/websockets/vendor/protocol.py
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1432
									
								
								test/compatibility/python/websockets/vendor/protocol.py
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user