summaryrefslogtreecommitdiff
path: root/src/api/socket.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-08-15 23:24:28 +0300
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:05:42 +0200
commit91c8088e1d7def9242f60c708cd34f25dcb77d76 (patch)
treeb68065019692cea5cf6c3d14b811104aff2f0879 /src/api/socket.js
parentd7512ace72448242b392299cf459c9c72c8dbee5 (diff)
Connect to backend and fetch initial project data
Diffstat (limited to 'src/api/socket.js')
-rw-r--r--src/api/socket.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/api/socket.js b/src/api/socket.js
new file mode 100644
index 00000000..86422808
--- /dev/null
+++ b/src/api/socket.js
@@ -0,0 +1,40 @@
+import io from "socket.io-client";
+import {getAuthToken} from "../auth/index";
+
+let socket;
+let requestIdCounter = 0;
+const callbacks = {};
+
+export function setupSocketConnection(onConnect) {
+ socket = io.connect("http://localhost:8081");
+ socket.on("connect", onConnect);
+ socket.on("response", onSocketResponse);
+}
+
+export function sendSocketRequest(request, callback) {
+ if (!socket.connected) {
+ console.error("Attempted to send request over unconnected socket");
+ return;
+ }
+
+ const newId = requestIdCounter++;
+ callbacks[newId] = callback;
+
+ request.id = newId;
+ request.token = getAuthToken();
+
+ if (!request.isRootRoute) {
+ request.path = "/v1" + request.path;
+ }
+
+ socket.emit("request", request);
+
+ console.log("Sent socket request:", request);
+}
+
+function onSocketResponse(json) {
+ const response = JSON.parse(json);
+ console.log("Received socket response:", response);
+ callbacks[response.id](response);
+ delete callbacks[response.id];
+}