From 418c360e24c2fdce701aae6ea6be9a7122d0c26f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Th=C3=B6rnblom?= <johan.thornblom@hotmail.com> Date: Mon, 21 Mar 2022 21:20:20 +0100 Subject: [PATCH] m --- Lab_4/Twidder/server.py | 21 +++++++++++++++------ Lab_4/Twidder/static/client.js | 4 ---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Lab_4/Twidder/server.py b/Lab_4/Twidder/server.py index d8b132c..11eecf9 100644 --- a/Lab_4/Twidder/server.py +++ b/Lab_4/Twidder/server.py @@ -5,6 +5,8 @@ import uuid import database_helper import json from flask_sock import Sock +import threading + from gevent import monkey monkey.patch_all() @@ -28,7 +30,7 @@ sock = Sock(app) app.debug = True session = {'token': ("email", "wsObj")} - +lock = threading.Lock() @app.route('/') @@ -86,6 +88,8 @@ def echo(socket): # sign out if I am logged in somewhere else print(session) + + lock.acquire() for token in list(session.keys()): if session[token][0] == myEmail and token != myToken: if session[token][1] != "": @@ -93,6 +97,8 @@ def echo(socket): session[token][1].close() print("You got kicked out") session.pop(token) + lock.release() + print(session) # Put socket in global dict so server knows my connection is open @@ -127,7 +133,9 @@ def sign_in(): # Generate a random token token = str(uuid.uuid4()) + lock.acquire() session[token] = (email, "") + lock.release() # return the token in the Authorization header response = make_response(jsonify({})) #"Server inserted user data into database" @@ -195,15 +203,16 @@ def sign_out(): return jsonify({}), tmp[1] # Close my socket - print(session) + lock.acquire() try: session[token][1].close() except: pass # samma sak som ingenting - print(session) - - # set user to not logged in - session.pop(token) + try: + session.pop(token) + except: + pass + lock.release() return jsonify({}), 204 # "Successfully signed out") diff --git a/Lab_4/Twidder/static/client.js b/Lab_4/Twidder/static/client.js index a26ecfd..5f255d9 100644 --- a/Lab_4/Twidder/static/client.js +++ b/Lab_4/Twidder/static/client.js @@ -67,10 +67,6 @@ function connectWithSocket() { switch (response["action"]) { case "signOut": - // If old socket open, close it. - socket.close(); - console.log(response); - // Reset token in the localStorage localStorage.setItem("currentUser", ""); localStorage.setItem("homeEmail", ""); -- GitLab