diff --git a/.DS_Store b/.DS_Store
index 18547431fc88e200671c46bab96e8eeb767dc026..ecbd8745b852288b7ee3372bccde4f5e9307ec7d 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/Lab_3/Twidder/.DS_Store b/Lab_3/Twidder/.DS_Store
index 7ed50fe6d9f4a9214d0db2613c2ee36381bc47ca..aeb683ff2abafaefdd695afac5298539b9a4f169 100644
Binary files a/Lab_3/Twidder/.DS_Store and b/Lab_3/Twidder/.DS_Store differ
diff --git a/Lab_3/Twidder/server.py b/Lab_3/Twidder/server.py
index 1b0053efa2b69792c76f5b79561e3117f8141b7d..b24993a14e6bd5aca8f1454d5a72f8bc247537b3 100644
--- a/Lab_3/Twidder/server.py
+++ b/Lab_3/Twidder/server.py
@@ -1,17 +1,20 @@
 """Server"""
-from flask import Flask, jsonify, request, make_response
+from flask import Flask, jsonify, request, make_response, render_template
 from gevent.pywsgi import WSGIServer
 import uuid
 import database_helper
+import json
 
 from geventwebsocket.handler import WebSocketHandler
-
+from flask_sock import Sock
+from gevent import monkey
+monkey.patch_all()
 
 
 #Remember:
 #PUT for updating data, POST for adding new data
 #save token on client and server (lab 3)
-
+# source /Users/psyfax/TDDD97/bin/activate
 # source "/Users/lorenzo/OneDrive - Linköpings universitet/Skola/DI3B/TDDD97/virtualenv/bin/activate"
 # python3 server.py
 # http://127.0.0.1:5000/myServer
@@ -22,6 +25,8 @@ from geventwebsocket.handler import WebSocketHandler
 
 
 app = Flask(__name__, static_url_path = '/static')#in case flask does not recognize folder
+sock = Sock(app)
+
 app.debug = True
 session = {'token':'email'}
 
@@ -33,7 +38,6 @@ def root():
 def myServer():
     return app.send_static_file('client.html')
 
-
 def token_has_error(token):
     """All token standard error checks"""
     if token is None:
@@ -59,23 +63,33 @@ def input_has_error(input):
         return True, 400, ""
     return False, 0, str
 
-@app.route("/myServer/socket", methods=['POST'])
-def createSocket():
-    """Establish socket connection"""
-    if request.environ.get('wsgi.websocket'):
-        ws = request.environ['wsgi.websocket']
-        while True:
-            message = ws.wait()
-            ws.send(message)
-    return
-    
 
+@sock.route('/myServer/api')
+def echo(ws):
+    while True:
+        if not ws:
+            return
+        data = ws.receive()
 
+        email = json.loads(data)["email"]
+        token = json.loads(data)["token"]
+
+        # Nonse so far:
+        # if email in session.values():
+        #     toDelete = ""
+        #     for key, value in session.items():
+        #         if value == email:
+        #             toDelete = key
+        #         print(key, value)
+
+        print("- - - - " + token)
+        ws.send(data)
+    
 
 @app.route("/myServer/sign_in", methods=['POST'])
 def sign_in():
     """Sign in user"""
-
+    print("shoit")
     # Validate Email
     tmp = input_has_error('email')
     if tmp[0]:
@@ -337,5 +351,6 @@ def post_message():
 
 if __name__ == '__main__':
     # app.run(port=5000, debug=True)
-    http_server = WSGIServer(('127.0.0.1', 5000), app, handler_class = WebSocketHandler)
+    app.debug = True
+    http_server = WSGIServer(('127.0.0.1', 5000), app) # handler_class = WebSocketHandler
     http_server.serve_forever()
diff --git a/Lab_3/Twidder/static/client.js b/Lab_3/Twidder/static/client.js
index a0b3905c53934760f7a5df1d6a0f7135adfadb0f..f87fc168eac71c5b2ea88c6c185b4a478d457399 100644
--- a/Lab_3/Twidder/static/client.js
+++ b/Lab_3/Twidder/static/client.js
@@ -3,30 +3,12 @@ var minPassLength = 2;
 var windowDiv;
 var welcomeDiv;
 var profileDiv;
-var url = 'http://127.0.0.1:5000/myServer/';
+var url = 'http://' + document.domain + ':5000/myServer/';
 var curr_page = "";
 var socket;
 
-
 // source "/Users/lorenzo/OneDrive - Linköpings universitet/Skola/DI3B/TDDD97/virtualenv/bin/activate"
 
-// socket.onopen = function (event) {
-//     let token = localStorage.getItem("currentUser");
-    // Todo - ändra så att tken skickas i header istället
-    // socket.send(JSON.stringify({token: token}));
-//};
-// socket.onmessage = function (event) {
-//     console.log(event.data);
-// };
-
-
-// webSocket.onopen = function(event){
-//     webSocket.send(JSON.stringify({email: "o@o", password: "oo"}))
-// };
-
-// webSocket.onmessage = function (event) {
-//     console.log(event.data);
-// };
 
 // - - - - - Init Request Objects - - - - - //
 
@@ -46,14 +28,20 @@ signInRequest.onreadystatechange = function() {
             setUserDetails("home");
 
             // Establish web socket
-            socket = new WebSocket(url + "socket");
-
+            socket = new WebSocket('ws://' + document.domain + ':5000/myServer/api');
             socket.onopen = function (event) {
+                let myEmail = localStorage.getItem("homeEmail");
 
                 // Todo - ändra så att token skickas i header istället
-                socket.send(JSON.stringify({token: token}));
-                socket.send(JSON.stringify({email: "o@o", password: "oo" }));
+                this.send(JSON.stringify({token: token, email: myEmail}));
+                console.log("Nu har jag skickat");
             }
+            socket.onmessage = function (event) {
+                console.log("Nu fick jag svar");
+                console.log(event.data);    
+            };
+            console.log("ja är signed in");
+
 
         }
         else if (this.status == 400) {
@@ -78,18 +66,25 @@ signOutRequest.onreadystatechange = function() {
         if (this.status == 204) {
 
             // Reset token in the localStorage
-            localStorage.setItem("currentUser", "");
-            localStorage.setItem("homeEmail", "");
-            localStorage.setItem("browseEmail", "");
+            // localStorage.setItem("currentUser", "");
+            // localStorage.setItem("homeEmail", "");
+            // localStorage.setItem("browseEmail", "");
 
             // Changes the view to welcome view
+            
             displayView();
         }
         else if (this.status == 401) {
             console.log("Error 401: You are not loged in");
+            // todo - kanske ta bort
+            localStorage.setItem("currentUser", "");
+            displayView();
         }
         else {
             console.log("Unknown error");
+            // todo - kanske ta bort
+            localStorage.setItem("currentUser", "");
+            displayView();
         } 
     }
 };
@@ -335,9 +330,9 @@ displayView = function(){
 window.onload = function () {
 
     // Delete when done - används för att hoppa tillbaka till rtt view under utveckling
-    // localStorage.setItem("currentUser", "");
-    // localStorage.setItem("homeEmail", "");
-    // localStorage.setItem("browseEmail", "");
+    localStorage.setItem("currentUser", "");
+    localStorage.setItem("homeEmail", "");
+    localStorage.setItem("browseEmail", "");
 
     // All key/value pairs stored in out localStorage
     // If first time? check this: