diff --git a/web-service/server/src/index.js b/web-service/server/src/index.js
index 33e1c8c1ef9158c0491da453e3e2ddac0ab1af1e..a1eab33660a36520e65867142a6b1cdc031862a1 100644
--- a/web-service/server/src/index.js
+++ b/web-service/server/src/index.js
@@ -43,6 +43,7 @@ let peer_uris = {};
 
 let uri_data = {};
 
+let peer_data = [];
 /**
  * A client stream request object. Each source maintains a list of clients who
  * are wanting frames from that source. Clients can only request N frames at a
@@ -364,7 +365,8 @@ app.ws('/', (ws, req) => {
 	console.log("New web socket request");
 	//console.log('WEBSOCKET',ws)
 	let p = new Peer(ws);
-
+	peer_data.push(p);
+	console.log(peer_data)
 	p.on("connect", (peer) => {
 		console.log("Node connected...", peer.string_id);
 		peer_uris[peer.string_id] = [];
diff --git a/web-service/server/src/peer.js b/web-service/server/src/peer.js
index cc60d113e5de4139e96868d08249083e5b0db4e8..8de7303e5ce1659e4d70637f63640cfe3787f044 100644
--- a/web-service/server/src/peer.js
+++ b/web-service/server/src/peer.js
@@ -14,6 +14,7 @@ my_uuid = Buffer.from(my_uuid);
 const kMagic = 0x0009340053640912;
 const kVersion = 0;
 
+
 /**
  * Wrap a web socket with a MsgPack RCP protocol that works with our C++ version.
  * @param {websocket} ws Websocket object
@@ -32,16 +33,8 @@ function Peer(ws) {
 	this.uri = "unknown";
 	this.name = "unknown";
 	this.master = false;
-	if(this.sock.on == undefined){
-		console.log(this.sock);
-		console.log("piip")
-		this.sock.onopen = (event) => {
-			const obj = [0, '__handshake__']
-			this.sock.send(encode(obj))
-			this.sock.
-		}
-	}
-	this.sock.on("message", (raw) => {
+
+	let message = (raw) => {
 		console.log(raw)
 		let msg = decode(raw);
 		console.log("MSG", msg)
@@ -63,18 +56,36 @@ function Peer(ws) {
 		} else if (msg[0] == 1) {
 			this._dispatchResponse(msg[1], msg[3]);
 		}
-	});
+	}
 
-	this.sock.on("close", () => {
+	let close = () => {
 		this.status = kDisconnected;
 		this._notify("disconnect", this);
-	});
+	}
 
-	this.sock.on("error", () => {
+	let error = () => {
 		console.error("Socket error");
 		this.sock.close();
 		this.status = kDisconnected;
-	});
+	}
+
+	//if undefined, client is using peer
+	if(this.sock.on === undefined){
+		this.sock.onmessage = message;
+		console.log("THIS", this)
+		console.log("THIS.SOCK", this.sock);
+		this.sock.onopen = (event) => {
+			console.log("Inside onopen")
+			const obj = [1, '__handshake__']
+			this.sock.send(encode(obj))
+		}
+		console.log("through")
+	//Server is using peer
+	}else{
+		this.sock.on("message", message);
+		this.sock.on("close", close);
+		this.sock.on("error", error);
+	}
 
 	this.bind("__handshake__", (magic, version, id) => {
 		if (magic == kMagic) {
diff --git a/web-service/server/src/public/js/bundle.js b/web-service/server/src/public/js/bundle.js
index 42c03acc1c28a2ca61f82ee65a9747ab16b30ed4..5ffc55e3bb734a03c055e73ff3db49d9209a9c12 100644
--- a/web-service/server/src/public/js/bundle.js
+++ b/web-service/server/src/public/js/bundle.js
@@ -4261,6 +4261,7 @@ my_uuid = Buffer.from(my_uuid);
 const kMagic = 0x0009340053640912;
 const kVersion = 0;
 
+
 /**
  * Wrap a web socket with a MsgPack RCP protocol that works with our C++ version.
  * @param {websocket} ws Websocket object
@@ -4279,16 +4280,8 @@ function Peer(ws) {
 	this.uri = "unknown";
 	this.name = "unknown";
 	this.master = false;
-	if(this.sock.on == undefined){
-		console.log(this.sock);
-		console.log("piip")
-		this.sock.onopen = (event) => {
-			const obj = [0, '__handshake__']
-			this.sock.send(encode(obj))
-			this.close();
-		}
-	}
-	this.sock.on("message", (raw) => {
+
+	let message = (raw) => {
 		console.log(raw)
 		let msg = decode(raw);
 		console.log("MSG", msg)
@@ -4310,18 +4303,36 @@ function Peer(ws) {
 		} else if (msg[0] == 1) {
 			this._dispatchResponse(msg[1], msg[3]);
 		}
-	});
+	}
 
-	this.sock.on("close", () => {
+	let close = () => {
 		this.status = kDisconnected;
 		this._notify("disconnect", this);
-	});
+	}
 
-	this.sock.on("error", () => {
+	let error = () => {
 		console.error("Socket error");
 		this.sock.close();
 		this.status = kDisconnected;
-	});
+	}
+
+	//if undefined, client is using peer
+	if(this.sock.on === undefined){
+		this.sock.onmessage = message;
+		console.log("THIS", this)
+		console.log("THIS.SOCK", this.sock);
+		this.sock.onopen = (event) => {
+			console.log("Inside onopen")
+			const obj = [1, '__handshake__']
+			this.sock.send(encode(obj))
+		}
+		console.log("through")
+	//Server is using peer
+	}else{
+		this.sock.on("message", message);
+		this.sock.on("close", close);
+		this.sock.on("error", error);
+	}
 
 	this.bind("__handshake__", (magic, version, id) => {
 		if (magic == kMagic) {
@@ -4502,7 +4513,7 @@ module.exports = Peer;
 const Peer = require('../../peer')
 
 let current_data = {};
-
+let peer_data = "";
 
 checkIfLoggedIn = async () => {
     //     const token = window.localStorage.getItem('token')
@@ -4633,8 +4644,9 @@ const createCard = (url, viewers) => {
 connectToStream = () => {
     const ws = new WebSocket('ws://localhost:8080/');
     current_data.frames = 10;
-    let p = new Peer(ws);
-    p.send('get_stream', (current_data.uri, current_data.frames, 0, /*pid,*/ current_data.uri));
+    peer_data = new Peer(ws);
+    console.log(peer_data)
+    peer_data.send('get_stream', (current_data.uri, current_data.frames, 0, /*pid,*/ current_data.uri));
     console.log("still working")
 
 
diff --git a/web-service/server/src/public/js/index.js b/web-service/server/src/public/js/index.js
index e0f453b35054fbd0d21c4cca7f2f695c79534567..4da28814a8feabdba5954f988770a9d323fd3e47 100644
--- a/web-service/server/src/public/js/index.js
+++ b/web-service/server/src/public/js/index.js
@@ -1,7 +1,7 @@
 const Peer = require('../../peer')
 
 let current_data = {};
-
+let peer_data = "";
 
 checkIfLoggedIn = async () => {
     //     const token = window.localStorage.getItem('token')
@@ -132,8 +132,9 @@ const createCard = (url, viewers) => {
 connectToStream = () => {
     const ws = new WebSocket('ws://localhost:8080/');
     current_data.frames = 10;
-    let p = new Peer(ws);
-    p.send('get_stream', (current_data.uri, current_data.frames, 0, /*pid,*/ current_data.uri));
+    peer_data = new Peer(ws);
+    console.log(peer_data)
+    peer_data.send('get_stream', (current_data.uri, current_data.frames, 0, /*pid,*/ current_data.uri));
     console.log("still working")