From 6f54448533e65042305705b7a9df3ed7327d8eec Mon Sep 17 00:00:00 2001 From: ComeF2 <123363885+ComeF2@users.noreply.github.com> Date: Mon, 27 Feb 2023 16:11:14 +0100 Subject: [PATCH] Fini step 3 --- Twidder (Lab3)/database.db | Bin 36864 -> 36864 bytes Twidder (Lab3)/server.py | 24 ++++++++++++++++++++++++ Twidder (Lab3)/static/client.js | 3 ++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Twidder (Lab3)/database.db b/Twidder (Lab3)/database.db index e782f056d664cc752ac1faf34ef066c94f2b9145..bd4569e38b3cb72f36be9709fc76c9f269776383 100644 GIT binary patch delta 61 zcmZozz|^pSX@WE($3z)tMvjdMN&YGkL8ay4p`pp8Mq%z=!5%&qSruW~86G)-xl!f8 RCOPR*=6NNXpZQBU003k%6x;v+ delta 61 zcmZozz|^pSX@WE(<3t%}M#hZ^N&YH{8J=eOX3h~AW|?l@&MwC3J|>pwX@0)WuGwxC R$tG^eVI{?zpZQBU002Qn6Py45 diff --git a/Twidder (Lab3)/server.py b/Twidder (Lab3)/server.py index 8b4cafc..e3056fa 100644 --- a/Twidder (Lab3)/server.py +++ b/Twidder (Lab3)/server.py @@ -29,6 +29,19 @@ def echo_connection_socket(ws): else: print("email error") +@sockets.route("/profil_view") +def socket_connection(ws): + while True: + token = ws.receive() + email = database_helper.tokenToEmail(token) + if email: + if email in loggedIn_for_ws: + loggedIn_for_ws[email] = ws + print("loggedIn_for_ws : ", loggedIn_for_ws) + else: + print("ERROR : ", email, " not connected") + else: + print("ERROR : ", email, " not found") @app.route("/", methods = ['GET']) def hello_world(): @@ -76,6 +89,7 @@ def sign_in(): } print("token : ", token) if database_helper.addToLoggedInUsers(token, data['email']): + check_reconnection(data['email']) return jsonify(value), 201 else: return "", 409 @@ -244,6 +258,16 @@ def is_valid_email(email): pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' return re.match(pattern, email) is not None +def check_reconnection(email): + if email in loggedIn_for_ws: + old_ws = loggedIn_for_ws[email] + old_ws.send("Disconnect") + old_ws.close() + print(email, "first connection disconnected") + loggedIn_for_ws[email] = -1 + else: + loggedIn_for_ws[email] = -1 + if __name__ == '__main__': # waitress.serve(app, host='0.0.0.0', port=5000, threads=4) #http://localhost:5000 diff --git a/Twidder (Lab3)/static/client.js b/Twidder (Lab3)/static/client.js index 8999723..b4e5786 100644 --- a/Twidder (Lab3)/static/client.js +++ b/Twidder (Lab3)/static/client.js @@ -27,7 +27,8 @@ function displayWelcomeView() { } function displayProfilView() { - let ws = new WebSocket('ws://' + window.location.host + '/echo_connection') + //let ws = new WebSocket('ws://' + window.location.host + '/echo_connection') + let ws = new WebSocket('ws://' + window.location.host + '/profil_view') ws.onopen = function(event) { console.log("WebSocket connection established !"); ws.send(localStorage.getItem("token")); -- GitLab