summaryrefslogtreecommitdiff
path: root/includes/external/computers/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/computers/index.js')
-rw-r--r--includes/external/computers/index.js91
1 files changed, 0 insertions, 91 deletions
diff --git a/includes/external/computers/index.js b/includes/external/computers/index.js
deleted file mode 100644
index a8109cb..0000000
--- a/includes/external/computers/index.js
+++ /dev/null
@@ -1,91 +0,0 @@
-const { WebSocketServer } = require('ws');
-const fs = require('fs');
-const uuid = require('uuid-v4');
-
-const wss = new WebSocketServer({ port: 38050 });
-const servers = {};
-const clients = {};
-
-wss.on('connection', function connection(ws, req) {
- ws.linked = null;
- ws.id = null;
- ws.linkedServer = null;
-
- console.log("New client: " + req.headers['x-forwarded-for'].split(',')[0].trim());
-
- ws.on('message', (_data) => {
- if (ws.linked) {
- try {
- let data = JSON.parse(_data.toString());
- data["_id"] = ws.id;
- servers[ws.linked].send(JSON.stringify(data));
- } catch (e) {
- console.error(e);
- }
- } else {
- try {
- let data = JSON.parse(_data.toString());
-
- if (data.type === "client") {
- if (Object.keys(servers).includes(data.id)) {
- if (fs.existsSync(__dirname + "/../../../includes/tokens/" + data.token.replaceAll(".", "").replaceAll("/", ""))) {
- ws.linked = data.id;
- ws.id = uuid();
-
- servers[data.id].send(JSON.stringify({
- type: "client",
- id: ws.id,
- address: req.headers['x-forwarded-for'].split(',')[0].trim(),
- name: data.name
- }));
-
- clients[ws.id] = ws;
- } else {
- console.log("close(c), reason: invalid token");
- ws.close();
- }
- } else {
- console.log("close(c), reason: no server");
- ws.close();
- }
- } else if (data.type === "server") {
- if (Object.keys(servers).includes(data.id)) {
- console.log("close(s), reason: already online");
- ws.close();
- return;
- }
-
- ws.linkedServer = data.id;
- servers[data.id] = ws;
- } else if (data._id) {
- try {
- if (clients[data._id]) {
- clients[data._id].send(_data);
- }
- } catch (e) {
- console.error(e);
- }
- }
- } catch (e) {
- console.error(e);
- }
- }
- })
-
- ws.on('close', () => {
- if (ws.linked) {
- try {
- servers[ws.linked].send(JSON.stringify({
- type: "close",
- id: ws.id
- }))
- } catch (e) {
- console.error(e);
- }
-
- delete clients[ws.id];
- } else if (ws.linkedServer) {
- delete servers[ws.linkedServer];
- }
- })
-}); \ No newline at end of file