diff --git a/about.html b/about.html new file mode 100644 index 00000000..50f334eb --- /dev/null +++ b/about.html @@ -0,0 +1,9 @@ + + + about page + + + +

This is about page

+ + diff --git a/home.html b/home.html new file mode 100644 index 00000000..5b9f5e6e --- /dev/null +++ b/home.html @@ -0,0 +1,52 @@ + + + WebSocket Example + + + +

WebSocket Example

+
+ + +
+
+ + +
+ + + + + + + + diff --git a/requirements.txt b/requirements.txt index e69de29b..bf5c0530 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1 @@ +websockets==10.4 diff --git a/server.py b/server.py index 430d1dc7..bc0e4c7e 100644 --- a/server.py +++ b/server.py @@ -1,19 +1,42 @@ import os import http.server import socketserver +import pathlib +import asyncio +import websockets from http import HTTPStatus class Handler(http.server.SimpleHTTPRequestHandler): def do_GET(self): - self.send_response(HTTPStatus.OK) - self.end_headers() - msg = 'Hello! you requested %s' % (self.path) - self.wfile.write(msg.encode()) + if self.path == '/': + file_path = pathlib.Path('home.html') + if file_path.is_file(): + self.send_response(HTTPStatus.OK) + self.send_header('Content-Type', 'text/html') + self.end_headers() + with file_path.open('rb') as f: + self.wfile.write(f.read()) + else: + self.send_response(HTTPStatus.NOT_FOUND) + self.end_headers() + else: + self.send_response(HTTPStatus.OK) + self.end_headers() + msg = 'Hello! you requested %s' % (self.path) + self.wfile.write(msg.encode()) + + + # Send a WebSocket message to any connected clients + if 'websocket' in self.headers: + ws = websocket.WebSocket() + ws.connect(self.headers['websocket'], self.headers) + ws.send('Hello from the server!') + ws.close() -port = int(os.getenv('PORT', 80)) +port = int(os.getenv('PORT', 8080)) print('Listening on port %s' % (port)) httpd = socketserver.TCPServer(('', port), Handler) httpd.serve_forever()