about summary refs log tree commit diff
path: root/assets/src/network
diff options
context:
space:
mode:
authorMelonai <einebeere@gmail.com>2021-05-08 23:41:03 +0200
committerMelonai <einebeere@gmail.com>2021-05-08 23:41:03 +0200
commit09693b979efe3c9c7ea64f79d97a1f0b53f7c49e (patch)
tree13719bb4800c1510a70f96f3e81f96f80ef960a2 /assets/src/network
parent88c0fbf10145ddd4ccd10ee432b4ca1aadd96a91 (diff)
downloadrook-09693b979efe3c9c7ea64f79d97a1f0b53f7c49e.tar.zst
rook-09693b979efe3c9c7ea64f79d97a1f0b53f7c49e.zip
Socket connection and token fetching
Diffstat (limited to 'assets/src/network')
-rw-r--r--assets/src/network/socket.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/assets/src/network/socket.ts b/assets/src/network/socket.ts
new file mode 100644
index 0000000..c056b41
--- /dev/null
+++ b/assets/src/network/socket.ts
@@ -0,0 +1,33 @@
+import { Socket } from "phoenix";
+import requests from "../stores/requests";
+
+let socket = new Socket("/socket", {});
+socket.connect();
+
+export const getToken: () => Promise<string> = () => {
+    let tokenChannel = socket.channel("token", {});
+    return new Promise((resolve, reject) => {
+        tokenChannel
+            .join()
+            .receive("ok", () => {
+                tokenChannel
+                    .push("get_token", {}, 5000)
+                    .receive("ok", ({ token }) => resolve(token))
+                    .receive("error", err => reject(err))
+                    .receive("timeout", err => reject(err));
+            })
+            .receive("error", err => reject(err));
+    });
+};
+
+export const joinShareChannel = token => {
+    let shareChannel = socket.channel(`share:${token}`);
+
+    shareChannel.on("request", requests.addRequest);
+
+    shareChannel
+        .join()
+        .receive("error", err =>
+            console.log("failed joining share channel:" + err)
+        );
+};