From 47a63d4ba007d91735b47295e47f5b8c950c5643 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:15:13 +0000 Subject: [PATCH 01/31] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index 430d1dc7..612633df 100644 --- a/server.py +++ b/server.py @@ -9,7 +9,7 @@ class Handler(http.server.SimpleHTTPRequestHandler): def do_GET(self): self.send_response(HTTPStatus.OK) self.end_headers() - msg = 'Hello! you requested %s' % (self.path) + msg = 'Here is the new website! %s' % (self.path) self.wfile.write(msg.encode()) From e3827f191b948b89c794b4cebd7d94b3511d6ef8 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:18:34 +0000 Subject: [PATCH 02/31] Update server.py --- server.py | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/server.py b/server.py index 612633df..6f12638d 100644 --- a/server.py +++ b/server.py @@ -1,19 +1,8 @@ -import os -import http.server -import socketserver +from flask import Flask -from http import HTTPStatus +app = Flask(__name__) -class Handler(http.server.SimpleHTTPRequestHandler): - def do_GET(self): - self.send_response(HTTPStatus.OK) - self.end_headers() - msg = 'Here is the new website! %s' % (self.path) - self.wfile.write(msg.encode()) - - -port = int(os.getenv('PORT', 80)) -print('Listening on port %s' % (port)) -httpd = socketserver.TCPServer(('', port), Handler) -httpd.serve_forever() +@app.route('/') +def hello(): + return 'Hello, World!' From 9013ce659e6892977500f8e5900d59c696fa3873 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:31:05 +0000 Subject: [PATCH 03/31] Update server.py --- server.py | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/server.py b/server.py index 6f12638d..73629cd0 100644 --- a/server.py +++ b/server.py @@ -1,8 +1,25 @@ -from flask import Flask +from http.server import HTTPServer, BaseHTTPRequestHandler -app = Flask(__name__) +class Server(BaseHTTPRequestHandler): + def do_GET(self): + self.send_response(200) + self.send_header('Content-type', 'text/html') + self.end_headers() + # get the page + path = self.path + if path == '/': + with open('home.html', 'rb') as page: + self.wfile.write(page.read()) + elif path == '/about': + with open('about.html', 'rb') as page: + self.wfile.write(page.read()) -@app.route('/') -def hello(): - return 'Hello, World!' + +try: + server = HTTPServer(('localhost', 8080), Server) + server.serve_forever() +except: + pass + +server.server_close() From 74a45b55a46026d42980ca00abd3d0688962f873 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:46:14 +0000 Subject: [PATCH 04/31] Update and rename server.py to main.py --- server.py => main.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename server.py => main.py (100%) diff --git a/server.py b/main.py similarity index 100% rename from server.py rename to main.py From 26e1b8ada2c7120ae917221c1d5ddcc74da05e0a Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:47:11 +0000 Subject: [PATCH 05/31] Create home.html --- home.html | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 home.html diff --git a/home.html b/home.html new file mode 100644 index 00000000..4d14a86c --- /dev/null +++ b/home.html @@ -0,0 +1,9 @@ + + + home page + + + +

This is home page

+ + From a8ec6df7e76bb45c658613741040e699c5b882a7 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:47:47 +0000 Subject: [PATCH 06/31] Create about.html --- about.html | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 about.html 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

+ + From ac9f9ac932f6b5ab48ce1f060229a07b24c124e5 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:51:38 +0000 Subject: [PATCH 07/31] Create server.py --- server.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 server.py diff --git a/server.py b/server.py new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/server.py @@ -0,0 +1 @@ + From a9a212442c2f0bbd807c1960bb902329c9ac717c Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:54:00 +0000 Subject: [PATCH 08/31] Update server.py --- server.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/server.py b/server.py index 8b137891..430d1dc7 100644 --- a/server.py +++ b/server.py @@ -1 +1,19 @@ +import os +import http.server +import socketserver +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()) + + +port = int(os.getenv('PORT', 80)) +print('Listening on port %s' % (port)) +httpd = socketserver.TCPServer(('', port), Handler) +httpd.serve_forever() From e294b3c064c0a4a2f72edd7ddd177edd42bf239f Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 16:57:22 +0000 Subject: [PATCH 09/31] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index 430d1dc7..daa337f0 100644 --- a/server.py +++ b/server.py @@ -3,7 +3,7 @@ import socketserver from http import HTTPStatus - +from http.server import HTTPServer, BaseHTTPRequestHandler class Handler(http.server.SimpleHTTPRequestHandler): def do_GET(self): From 269b4c5a67dc5e6a12ef4123704021ff2412965a Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:02:14 +0000 Subject: [PATCH 10/31] Update server.py --- server.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/server.py b/server.py index daa337f0..df3c18ce 100644 --- a/server.py +++ b/server.py @@ -5,12 +5,20 @@ from http import HTTPStatus from http.server import HTTPServer, BaseHTTPRequestHandler -class Handler(http.server.SimpleHTTPRequestHandler): +class Server(BaseHTTPRequestHandler): def do_GET(self): - self.send_response(HTTPStatus.OK) + self.send_response(200) + self.send_header('Content-type', 'text/html') self.end_headers() - msg = 'Hello! you requested %s' % (self.path) - self.wfile.write(msg.encode()) + + # get the page + path = self.path + if path == '/': + with open('home.html', 'rb') as page: + self.wfile.write(page.read()) + elif path == '/about': + with open('about.html', 'rb') as page: + self.wfile.write(page.read()) port = int(os.getenv('PORT', 80)) From c7688bff9e4387df19e78e91839cc192b479116d Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:20:10 +0000 Subject: [PATCH 11/31] Update server.py --- server.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/server.py b/server.py index df3c18ce..0e104379 100644 --- a/server.py +++ b/server.py @@ -1,24 +1,29 @@ import os import http.server import socketserver +import pathlib from http import HTTPStatus -from http.server import HTTPServer, BaseHTTPRequestHandler -class Server(BaseHTTPRequestHandler): - def do_GET(self): - self.send_response(200) - self.send_header('Content-type', 'text/html') - self.end_headers() - # get the page - path = self.path - if path == '/': - with open('home.html', 'rb') as page: - self.wfile.write(page.read()) - elif path == '/about': - with open('about.html', 'rb') as page: - self.wfile.write(page.read()) +class Handler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + 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()) port = int(os.getenv('PORT', 80)) From 8dc7b671cbf1342574d0a11103b493d7a9e8ea07 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:28:52 +0000 Subject: [PATCH 12/31] Update server.py --- server.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/server.py b/server.py index 0e104379..e8d6929c 100644 --- a/server.py +++ b/server.py @@ -2,6 +2,7 @@ import http.server import socketserver import pathlib +import websocket from http import HTTPStatus @@ -25,8 +26,16 @@ def do_GET(self): 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)) print('Listening on port %s' % (port)) httpd = socketserver.TCPServer(('', port), Handler) httpd.serve_forever() + From 1e6e3c4a52c2417ecc4f04c50245c8021717034d Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:41:25 +0000 Subject: [PATCH 13/31] Update server.py --- server.py | 44 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/server.py b/server.py index e8d6929c..b477e746 100644 --- a/server.py +++ b/server.py @@ -1,41 +1,19 @@ import os -import http.server -import socketserver -import pathlib -import websocket +import asyncio +import websockets -from http import HTTPStatus +async def hello(websocket, path): + name = await websocket.recv() + print(f"< {name}") + greeting = f"Hello {name}!" -class Handler(http.server.SimpleHTTPRequestHandler): - def do_GET(self): - 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() - + await websocket.send(greeting) + print(f"> {greeting}") port = int(os.getenv('PORT', 80)) print('Listening on port %s' % (port)) -httpd = socketserver.TCPServer(('', port), Handler) -httpd.serve_forever() +start_server = websockets.serve(hello, '', port) +asyncio.get_event_loop().run_until_complete(start_server) +asyncio.get_event_loop().run_forever() From f015ca3fea10225e213e33ef98706d4908257c3b Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:45:24 +0000 Subject: [PATCH 14/31] Update server.py --- server.py | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/server.py b/server.py index b477e746..df623264 100644 --- a/server.py +++ b/server.py @@ -1,19 +1,33 @@ import os -import asyncio -import websockets +import http.server +import socketserver +import pathlib -async def hello(websocket, path): - name = await websocket.recv() - print(f"< {name}") +from http import HTTPStatus - greeting = f"Hello {name}!" - await websocket.send(greeting) - print(f"> {greeting}") +class Handler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + 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()) + port = int(os.getenv('PORT', 80)) print('Listening on port %s' % (port)) -start_server = websockets.serve(hello, '', port) +httpd = socketserver.TCPServer(('', port), Handler) +httpd.serve_forever() -asyncio.get_event_loop().run_until_complete(start_server) -asyncio.get_event_loop().run_forever() From e8979e75ad4025c6d71b07d98bca0e525743f13a Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:48:21 +0000 Subject: [PATCH 15/31] Update server.py --- server.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server.py b/server.py index df623264..56ba12a0 100644 --- a/server.py +++ b/server.py @@ -2,6 +2,8 @@ import http.server import socketserver import pathlib +import asyncio +import websockets from http import HTTPStatus @@ -30,4 +32,3 @@ def do_GET(self): print('Listening on port %s' % (port)) httpd = socketserver.TCPServer(('', port), Handler) httpd.serve_forever() - From e466ffb2643f6a4338425f2d1df4398f158aa516 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:52:31 +0000 Subject: [PATCH 16/31] Update server.py --- server.py | 1 - 1 file changed, 1 deletion(-) diff --git a/server.py b/server.py index 56ba12a0..b8b545ee 100644 --- a/server.py +++ b/server.py @@ -3,7 +3,6 @@ import socketserver import pathlib import asyncio -import websockets from http import HTTPStatus From 8e713ca7c3e3849c0cb6db8d86f1429546a3bc0f Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 17:54:57 +0000 Subject: [PATCH 17/31] Update server.py --- server.py | 1 + 1 file changed, 1 insertion(+) diff --git a/server.py b/server.py index b8b545ee..56ba12a0 100644 --- a/server.py +++ b/server.py @@ -3,6 +3,7 @@ import socketserver import pathlib import asyncio +import websockets from http import HTTPStatus From abb0448280568524e1001ccc8a60c91bb75adc10 Mon Sep 17 00:00:00 2001 From: David Yates Date: Wed, 4 Jan 2023 18:05:36 +0000 Subject: [PATCH 18/31] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index 56ba12a0..0cfa94fc 100644 --- a/server.py +++ b/server.py @@ -3,7 +3,7 @@ import socketserver import pathlib import asyncio -import websockets +import websocket-client from http import HTTPStatus From 548736d3b79d067f1373c8d86c363c7bb2d439b2 Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 09:48:57 +0000 Subject: [PATCH 19/31] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index 0cfa94fc..33a1db2e 100644 --- a/server.py +++ b/server.py @@ -3,7 +3,7 @@ import socketserver import pathlib import asyncio -import websocket-client +import websocket from http import HTTPStatus From 44342080e00632043d7a45f682feda1d8bc8ba5e Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 09:51:09 +0000 Subject: [PATCH 20/31] Update home.html --- home.html | 57 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 7 deletions(-) diff --git a/home.html b/home.html index 4d14a86c..4d972d66 100644 --- a/home.html +++ b/home.html @@ -1,9 +1,52 @@ - - home page - - - -

This is home page

- + + WebSocket Example + + + +

WebSocket Example

+
+ + +
+
+ + +
+ + + + + + + From 662712773e0266cf97bdf49a5b8c697efb618a3a Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 11:20:35 +0000 Subject: [PATCH 21/31] Delete main.py --- main.py | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 main.py diff --git a/main.py b/main.py deleted file mode 100644 index 73629cd0..00000000 --- a/main.py +++ /dev/null @@ -1,25 +0,0 @@ -from http.server import HTTPServer, BaseHTTPRequestHandler - -class Server(BaseHTTPRequestHandler): - def do_GET(self): - self.send_response(200) - self.send_header('Content-type', 'text/html') - self.end_headers() - - # get the page - path = self.path - if path == '/': - with open('home.html', 'rb') as page: - self.wfile.write(page.read()) - elif path == '/about': - with open('about.html', 'rb') as page: - self.wfile.write(page.read()) - - -try: - server = HTTPServer(('localhost', 8080), Server) - server.serve_forever() -except: - pass - -server.server_close() From de31ef55ed5be9673339158353680abd3ff44ab8 Mon Sep 17 00:00:00 2001 From: Wren-Recursive <121886550+Wren-Recursive@users.noreply.github.com> Date: Thu, 5 Jan 2023 14:12:47 +0000 Subject: [PATCH 22/31] add websockets to requirements --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index e69de29b..6600e4af 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1 @@ +websockets>=10.4 From a551b026d6dea52b7176ef01d5c7fac7c63121ec Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 14:16:41 +0000 Subject: [PATCH 23/31] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6600e4af..bf5c0530 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -websockets>=10.4 +websockets==10.4 From 809e647722d27471c2a4425defc5114b96f712d0 Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 14:18:21 +0000 Subject: [PATCH 24/31] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index 33a1db2e..56ba12a0 100644 --- a/server.py +++ b/server.py @@ -3,7 +3,7 @@ import socketserver import pathlib import asyncio -import websocket +import websockets from http import HTTPStatus From f1bb83694013e7c72ed94774adabff74cb6ffff0 Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 14:58:38 +0000 Subject: [PATCH 25/31] Update server.py --- server.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server.py b/server.py index 56ba12a0..cb1984cb 100644 --- a/server.py +++ b/server.py @@ -26,6 +26,14 @@ def do_GET(self): 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)) From c7f742b8484bd4c5ffb2d62eec7f8838d1de42cf Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 15:40:27 +0000 Subject: [PATCH 26/31] Update server.py Added additional code to send a message every 10 seconds to the web socket client --- server.py | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/server.py b/server.py index cb1984cb..45f4a7c8 100644 --- a/server.py +++ b/server.py @@ -7,34 +7,34 @@ from http import HTTPStatus - class Handler(http.server.SimpleHTTPRequestHandler): def do_GET(self): - 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: + 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() - 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() + 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()) + + # Check if the request includes a "websocket" header + if 'websocket' in self.headers: + # Establish a WebSocket connection with the client + ws = websocket.WebSocket() + ws.connect(self.headers['websocket'], self.headers) + # Send a message to the client + ws.send('Hello from the server!') + ws.close() port = int(os.getenv('PORT', 80)) print('Listening on port %s' % (port)) From ddb9016b057e500a4fcc0afaa6900127ae739132 Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 15:44:54 +0000 Subject: [PATCH 27/31] Update server.py --- server.py | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/server.py b/server.py index 45f4a7c8..4b532371 100644 --- a/server.py +++ b/server.py @@ -9,32 +9,32 @@ class Handler(http.server.SimpleHTTPRequestHandler): def do_GET(self): - 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()) + 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.NOT_FOUND) + self.send_response(HTTPStatus.OK) self.end_headers() - else: - self.send_response(HTTPStatus.OK) - self.end_headers() - msg = 'Hello! you requested %s' % (self.path) - self.wfile.write(msg.encode()) + msg = 'Hello! you requested %s' % (self.path) + self.wfile.write(msg.encode()) - # Check if the request includes a "websocket" header - if 'websocket' in self.headers: - # Establish a WebSocket connection with the client - ws = websocket.WebSocket() - ws.connect(self.headers['websocket'], self.headers) + # Check if the request includes a "websocket" header + if 'websocket' in self.headers: + # Establish a WebSocket connection with the client + ws = websocket.WebSocket() + ws.connect(self.headers['websocket'], self.headers) - # Send a message to the client - ws.send('Hello from the server!') - ws.close() + # Send a message to the client + ws.send('Hello from the server!') + ws.close() port = int(os.getenv('PORT', 80)) print('Listening on port %s' % (port)) From dad21fd29500ebcf0cbe0027876a8f41d25fd828 Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 15:57:17 +0000 Subject: [PATCH 28/31] Update server.py --- server.py | 49 ++++++++++++------------------------------------- 1 file changed, 12 insertions(+), 37 deletions(-) diff --git a/server.py b/server.py index 4b532371..68e39bc7 100644 --- a/server.py +++ b/server.py @@ -1,42 +1,17 @@ -import os -import http.server -import socketserver -import pathlib -import asyncio -import websockets +#!/usr/bin/env python -from http import HTTPStatus +import asyncio -class Handler(http.server.SimpleHTTPRequestHandler): - def do_GET(self): - 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()) +import websockets - # Check if the request includes a "websocket" header - if 'websocket' in self.headers: - # Establish a WebSocket connection with the client - ws = websocket.WebSocket() - ws.connect(self.headers['websocket'], self.headers) +async def handler(websocket): + while True: + message = await websocket.recv() + print(message) - # Send a message to the client - ws.send('Hello from the server!') - ws.close() +async def main(): + async with websockets.serve(handler, "", 8001): + await asyncio.Future() # run forever -port = int(os.getenv('PORT', 80)) -print('Listening on port %s' % (port)) -httpd = socketserver.TCPServer(('', port), Handler) -httpd.serve_forever() +if __name__ == "__main__": + asyncio.run(main()) From 958e3780bc2ad78de7153f41ec906fcb895788cd Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 16:10:50 +0000 Subject: [PATCH 29/31] Update server.py --- server.py | 49 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/server.py b/server.py index 68e39bc7..cb1984cb 100644 --- a/server.py +++ b/server.py @@ -1,17 +1,42 @@ -#!/usr/bin/env python - +import os +import http.server +import socketserver +import pathlib import asyncio - import websockets -async def handler(websocket): - while True: - message = await websocket.recv() - print(message) +from http import HTTPStatus + + +class Handler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + 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() -async def main(): - async with websockets.serve(handler, "", 8001): - await asyncio.Future() # run forever -if __name__ == "__main__": - asyncio.run(main()) +port = int(os.getenv('PORT', 80)) +print('Listening on port %s' % (port)) +httpd = socketserver.TCPServer(('', port), Handler) +httpd.serve_forever() From 8c9251b76d9bbd685c81cd01ab45c5fc5bcb1a5c Mon Sep 17 00:00:00 2001 From: David Yates Date: Thu, 5 Jan 2023 16:14:24 +0000 Subject: [PATCH 30/31] Update home.html updated server information --- home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.html b/home.html index 4d972d66..5b9f5e6e 100644 --- a/home.html +++ b/home.html @@ -24,7 +24,7 @@

WebSocket Example