diff --git a/Lab_3/Twidder/server.py b/Lab_3/Twidder/server.py
index ca92bba041d7a53e5c257573649bbe54f119b1b8..1b0053efa2b69792c76f5b79561e3117f8141b7d 100644
--- a/Lab_3/Twidder/server.py
+++ b/Lab_3/Twidder/server.py
@@ -4,6 +4,9 @@ from gevent.pywsgi import WSGIServer
 import uuid
 import database_helper
 
+from geventwebsocket.handler import WebSocketHandler
+
+
 
 #Remember:
 #PUT for updating data, POST for adding new data
@@ -17,21 +20,6 @@ import database_helper
 #Questions:
 #Why does localhost in URL not work?
 
-def task(pid):
-    """
-    Some non-deterministic task
-    """
-    gevent.sleep(random.randint(0,2)*0.001)
-    print('Task %s done' % pid)
-
-def asynchronous():
-    threads = [gevent.spawn(task, i) for i in xrange(10)]
-    gevent.joinall(threads)
-
-print('Asynchronous:')
-asynchronous()
-
-#---------------------#---------------------#---------------------#---------------------
 
 app = Flask(__name__, static_url_path = '/static')#in case flask does not recognize folder
 app.debug = True
@@ -71,6 +59,18 @@ 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
+    
+
+
 
 @app.route("/myServer/sign_in", methods=['POST'])
 def sign_in():
@@ -336,7 +336,6 @@ def post_message():
 
 
 if __name__ == '__main__':
-    app.run(port=5000, debug=True)
-
-http_server = WSGIServer(('127.0.0.1:5000/myServer', 5000), app)
-http_server.serve_forever()
+    # app.run(port=5000, 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 bbdae2cb08f1e256ab11f29b432a7726ff0ff087..a0b3905c53934760f7a5df1d6a0f7135adfadb0f 100644
--- a/Lab_3/Twidder/static/client.js
+++ b/Lab_3/Twidder/static/client.js
@@ -5,10 +5,29 @@ var welcomeDiv;
 var profileDiv;
 var url = 'http://127.0.0.1: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 - - - - - //
 
 // Sign In Request Object
@@ -25,6 +44,17 @@ signInRequest.onreadystatechange = function() {
             // Changes the view to profile view and loads user info
             displayView();
             setUserDetails("home");
+
+            // Establish web socket
+            socket = new WebSocket(url + "socket");
+
+            socket.onopen = function (event) {
+
+                // 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" }));
+            }
+
         }
         else if (this.status == 400) {
             errorMessage.innerHTML = "Error 400: Incorrect format"; 
@@ -406,6 +436,7 @@ function sign_in() {
     else {
 
         // Sending sign_in request to "server"
+        
         signInRequest.open("POST", url + "sign_in", true);
         signInRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
         signInRequest.send(JSON.stringify({email: email,password: password}));