summaryrefslogtreecommitdiff
path: root/comproxy/index.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
committerMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
commit3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch)
tree75be5fba4368472fb11c8015aee026b2b9a71888 /comproxy/index.js
parent8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff)
downloadpluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'comproxy/index.js')
-rw-r--r--comproxy/index.js91
1 files changed, 0 insertions, 91 deletions
diff --git a/comproxy/index.js b/comproxy/index.js
deleted file mode 100644
index 4a5115e..0000000
--- a/comproxy/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