diff options
| author | Melonai <einebeere@gmail.com> | 2021-05-08 23:41:03 +0200 |
|---|---|---|
| committer | Melonai <einebeere@gmail.com> | 2021-05-08 23:41:03 +0200 |
| commit | 09693b979efe3c9c7ea64f79d97a1f0b53f7c49e (patch) | |
| tree | 13719bb4800c1510a70f96f3e81f96f80ef960a2 /assets/src/network | |
| parent | 88c0fbf10145ddd4ccd10ee432b4ca1aadd96a91 (diff) | |
| download | rook-09693b979efe3c9c7ea64f79d97a1f0b53f7c49e.tar.zst rook-09693b979efe3c9c7ea64f79d97a1f0b53f7c49e.zip | |
Socket connection and token fetching
Diffstat (limited to 'assets/src/network')
| -rw-r--r-- | assets/src/network/socket.ts | 33 |
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) + ); +}; |
