Selaa lähdekoodia

Add option to disable SSL for websocket in both frontend and backend
Only disabled in backend to be replaced by an nginx SSL proxy

niels 4 vuotta sitten
vanhempi
commit
e62ee7f3a3
2 muutettua tiedostoa jossa 17 lisäystä ja 12 poistoa
  1. 13 9
      chube_ws.py
  2. 4 3
      frontend/chuchufe/src/util/Resolver.js

+ 13 - 9
chube_ws.py

@@ -8,10 +8,10 @@ import websockets
 
 from chube_enums import Message
 
-PORT = os.environ.get("CHUBE_WS_PORT") or 3821  # CHU
+PORT = os.environ.get("CHUBE_WS_PORT") or 38210  # CHU
 HOST = os.environ.get("CHUBE_WS_HOST") or "localhost"
 
-ENABLE_WSS = os.environ.get("CHUBE_NO_WSS") != 1
+ENABLE_WSS = os.environ.get("CHUBE_NO_WSS") != '1'
 CERT_PATH = os.environ.get("CHUBE_CERT_PATH")
 KEY_PATH = os.environ.get("CHUBE_KEY_PATH")
 
@@ -86,12 +86,16 @@ def make_message_from_json_string(message_type, raw_body: str):
 
 
 def start_server(resolver: Resolver, on_new_connection, on_connection_close):
-    ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
-    cert_pem = pathlib.Path(CERT_PATH)
-    key_pem = pathlib.Path(KEY_PATH)
-    ssl_context.load_cert_chain(cert_pem, key_pem)
-    ws_server = websockets.serve(
-        resolver.make_handler(on_open=on_new_connection, on_close=on_connection_close),
-        HOST, PORT, ssl=ssl_context)
+    if ENABLE_WSS:
+        ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
+        cert_pem = pathlib.Path(CERT_PATH)
+        key_pem = pathlib.Path(KEY_PATH)
+        ssl_context.load_cert_chain(cert_pem, key_pem)
+        ws_server = websockets.serve(
+            resolver.make_handler(on_open=on_new_connection, on_close=on_connection_close),
+            HOST, PORT, ssl=ssl_context)
+    else:
+        ws_server = websockets.serve(resolver.make_handler(on_open=on_new_connection, on_close=on_connection_close),
+                                     HOST, PORT)
     asyncio.get_event_loop().run_until_complete(ws_server)
     asyncio.get_event_loop().run_forever()

+ 4 - 3
frontend/chuchufe/src/util/Resolver.js

@@ -1,5 +1,6 @@
-const PORT = 3821
+const PORT = process.env.NODE_ENV === "development" ? 38210 : 3821
 const HOST = window.location.hostname
+const PROTOCOL = process.env.NODE_ENV === "development" ? "ws" : "wss"
 
 export class Resolver {
     registerMap = null;
@@ -45,11 +46,11 @@ export class Resolver {
     }
 
     connectSocket(path) {
-        this.websocket = new WebSocket(`wss://${HOST}:${PORT}/${path}`)
+        this.websocket = new WebSocket(`${PROTOCOL}://${HOST}:${PORT}/${path}`)
         window.socket = this.websocket;
         return this.websocket
     }
-
+                                            
 }
 
 export function makeMessage(messageType, body) {