diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-08-15 23:24:28 +0300 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-23 10:05:42 +0200 |
| commit | 91c8088e1d7def9242f60c708cd34f25dcb77d76 (patch) | |
| tree | b68065019692cea5cf6c3d14b811104aff2f0879 /src/api/socket.js | |
| parent | d7512ace72448242b392299cf459c9c72c8dbee5 (diff) | |
Connect to backend and fetch initial project data
Diffstat (limited to 'src/api/socket.js')
| -rw-r--r-- | src/api/socket.js | 40 |
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]; +} |
