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
to443
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