From 39d9c23deeda6238d1968ea960ad6c26ce675ff3 Mon Sep 17 00:00:00 2001 From: Sepp Jeremiah Morris Date: Tue, 11 Oct 2022 20:31:13 +0200 Subject: [PATCH] final i'm sleepy so english not very good looking --- README.md | 57 ++++++++++++++++++++++++++- _client.zip | Bin 0 -> 5475 bytes FileSaver.js => _client/FileSaver.js | 0 ajax.js => _client/ajax.js | 2 +- base64.js => _client/base64.js | 0 file.html => _client/file.html | 12 +++--- 6 files changed, 62 insertions(+), 9 deletions(-) create mode 100644 _client.zip rename FileSaver.js => _client/FileSaver.js (100%) rename ajax.js => _client/ajax.js (97%) rename base64.js => _client/base64.js (100%) rename file.html => _client/file.html (59%) diff --git a/README.md b/README.md index e40fae4..0180007 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,57 @@ -# websocket-FileTransfer -Using Xianbei233's test project to see if i can push files to a lockeddown client over websockets +# Websocket File Downloading +I made a quick fork of Xianbei233's test project to see if i can push files to a lockeddown client over websockets, small files seem to work and big files i haven't tested yet. + +**changes i made:** + +- Translated to english +- used the secure websocket example to make this work over https +- changed port `8989` to `443` since it will be the only server i'll be hosting + +## Getting started: + +### client: + +Upload the contents of `_client` to a capable webserver over https. + +edit `ajax.js` and change the `const ws = new WebSocket("wss://HOSTNAMEHERE:443");` +to your domain name + +Point the browser to `file.html` + +### server: +clone my repo +`git clone https://github.com/SEPPDROID/websocket-FileTransfer.git` + +jump to the folder +`cd websocket-FileTransfer/` + +like all nodeprojects just execute npm +`npm install` + +jump to the src folder +`cd src` + +but wait! we need a domain, cert & a key for secure support. +you can also use self signed certificates but i reccommend certbot and a example can be found below + +jump to the cert folder +`cd sec_certs/` + +and link (or copy) your `fullchain.pem` and `privkey.pem` + +then go back to the `src` folder (with `cd ..`) and launch the node app by executing +`node server.js` + +*tip use npm forever to make it a background process or service* +### certbot: +install certbot + +then execute the certonly tag w/ the command +`sudo certbot certonly --standalone --preferred-challenges http -d EXAMPLE.DOMAIN.COM` + +your `fullchain.pem` and `privkey.pem` will be available at + +` /etc/letsencrypt/live/EXAMPLE.DOMAIN.COM/fullchain.pem` +` /etc/letsencrypt/live/EXAMPLE.DOMAIN.COM/privkey.pem` diff --git a/_client.zip b/_client.zip new file mode 100644 index 0000000000000000000000000000000000000000..f74e9d3b6a27897a753ce85aa283184b4a3dd2db GIT binary patch literal 5475 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 { } } - if (isJSON(data) == false && data == 'con. Succ') { + if (isJSON(data) == false && data == 'hello, connection success!') { document.getElementById('message').append(data) diff --git a/base64.js b/_client/base64.js similarity index 100% rename from base64.js rename to _client/base64.js diff --git a/file.html b/_client/file.html similarity index 59% rename from file.html rename to _client/file.html index 6194834..c4bfbac 100644 --- a/file.html +++ b/_client/file.html @@ -8,14 +8,14 @@ - WS FileTransfer + sWS FileTransfer - - -
    -
    -
    + +

    +


    +

    +

    \ No newline at end of file