backend is coming
This commit is contained in:
parent
ba55edfcf0
commit
9e749d7aa3
36
index.js
36
index.js
@ -2,7 +2,15 @@ const http = require('http');
|
||||
const url = require('url');
|
||||
const fs = require('fs');
|
||||
const ws = require('ws');
|
||||
const redis = require('redis')
|
||||
|
||||
//redis client
|
||||
const redis_client = redis.createClient()
|
||||
redis_client.on("error", function (error) {
|
||||
console.error(error)
|
||||
})
|
||||
|
||||
//HTTP server
|
||||
http.createServer(function (req, res) {
|
||||
const q = url.parse(req.url, true);
|
||||
let filename = "./public" + q.pathname;
|
||||
@ -18,6 +26,7 @@ http.createServer(function (req, res) {
|
||||
});
|
||||
}).listen(8080);
|
||||
|
||||
//WS server
|
||||
const wss = new ws.Server({
|
||||
port: 8081,
|
||||
perMessageDeflate: {
|
||||
@ -41,10 +50,35 @@ const wss = new ws.Server({
|
||||
}
|
||||
});
|
||||
|
||||
//WS handler
|
||||
wss.on('connection', ws => {
|
||||
ws.on('message', message => {
|
||||
console.log(`Received message => ${message}`)
|
||||
if ({message} == 'long_url ') ws.send('error: url is empty')
|
||||
let msg = `${message}`.split(";", 2)
|
||||
if (msg[0] === 'long_url') {
|
||||
if (msg[1] === '') ws.send('error;url is empty')
|
||||
if (msg[1].length > 2000) ws.send('error;your url is too big')
|
||||
else{
|
||||
let ran_key = get_key(8)
|
||||
//redis_client.set("key", "value", redis.print)
|
||||
ws.send('short_url;http://127.0.0.1'+ran_key)
|
||||
}
|
||||
}
|
||||
//ws.send('got your request: '+msg)
|
||||
console.log(msg[0])
|
||||
})
|
||||
ws.send('websocket connected')
|
||||
})
|
||||
|
||||
//random key
|
||||
const forbidden_array = ['sym', 'admin', 'stats']
|
||||
function get_key(length) {
|
||||
let forbidden = false; let output = ''
|
||||
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
|
||||
do{
|
||||
for (let i = 0; i < length; i++ )
|
||||
output += characters.charAt(Math.floor(Math.random() * characters.length))
|
||||
for (let i = 0; i < forbidden_array.length; i++) if (output === forbidden_array[i]) forbidden = true
|
||||
} while (forbidden)
|
||||
return output
|
||||
}
|
||||
|
@ -5,19 +5,22 @@
|
||||
<link rel="stylesheet" type="text/css" href="./sym/dark.css">
|
||||
<script src="./sym/script.js"></script>
|
||||
<script>
|
||||
const wsurl = 'ws://192.168.188.36:8081'
|
||||
const wsurl = 'ws://127.0.0.1:8081'
|
||||
const socket = new WebSocket(wsurl)
|
||||
|
||||
socket.onopen = () => {
|
||||
socket.send('new session')
|
||||
socket.send('new_session ')
|
||||
}
|
||||
socket.onerror = (error) => {
|
||||
console.log(`WebSocket error: ${error}`)
|
||||
}
|
||||
socket.onmessage = (e) => {
|
||||
console.log(e.data)
|
||||
document.getElementById('error-message').innerText = e.data
|
||||
document.getElementById('error-box').style.display = 'block'
|
||||
let msg = e.data.split(";", 2)
|
||||
if (msg[0] === 'error') {
|
||||
document.getElementById('error-message').innerText = msg[1]
|
||||
document.getElementById('error-box').style.display = 'block'
|
||||
}
|
||||
}
|
||||
function short_url(){
|
||||
socket.send('long_url '+document.getElementById('name-input').value)
|
||||
@ -27,12 +30,12 @@
|
||||
<body>
|
||||
<div class="login">
|
||||
<div class="title">short your url</div>
|
||||
<form name="search" action="javascript:socket.send('long_url '+document.getElementById('name-input').value)" method="POST">
|
||||
<form name="search" action="javascript:socket.send('long_url;'+document.getElementById('name-input').value)" method="POST">
|
||||
<div class="inputbox" id="name">
|
||||
<input class="input" id="name-input" type="text" onblur="deselected('name');" onfocus="selected('name');" name="url" value="" maxlength="2000" placeholder="https://your.long.url/junk">
|
||||
</div>
|
||||
<input type="hidden" value="search" name="login">
|
||||
<a href="javascript:socket.send('long_url '+document.getElementById('name-input').value)">
|
||||
<a href="javascript:socket.send('long_url;'+document.getElementById('name-input').value)">
|
||||
<div class="btn-blue" id="short-btn">
|
||||
<div class="btn-text">short</div>
|
||||
</div>
|
||||
@ -43,7 +46,7 @@
|
||||
<div onclick="document.getElementById('error-box').style.display = 'none'" style="position: absolute; top:5px; right: 5px;" class="sym_btn-invisible">
|
||||
<img class="icon" src="./sym/ic_close_white_24px.svg">
|
||||
</div>
|
||||
<div id="error-message">
|
||||
<div id="error-message" class="btn-text">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user