Converted to https with self signed cert
This commit is contained in:
21
server/cert.pem
Normal file
21
server/cert.pem
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDazCCAlOgAwIBAgIUCxwidJiV5wAryWiBk5lYIRxcmQ8wDQYJKoZIhvcNAQEL
|
||||||
|
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
||||||
|
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMDAzMjYxNDAzMzNaFw0yMTAz
|
||||||
|
MjYxNDAzMzNaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
||||||
|
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQCuBzkv9ucrpQIErhGh+oXZ/AJzmQdLf5yktJGLbnLZ
|
||||||
|
D81nE6cX6sbpPyehQRWwAf9a6LWGyQeK37ne4atxbJgsQlqaxWeZuovk0QJXhBrV
|
||||||
|
A3t9NdIDzzknH6NWzSPhOwDn86GvbMF52AE1kZyy1PIA72cGj7rJWaQAb1fK3BmP
|
||||||
|
GRGUCm/pJjXHrEaGH4S9EWI3AstX8M8gYFkAS9uWtWznWafUMHbPV0TEni6tFd6g
|
||||||
|
aaEVSR2iUjimRLTwcEiCFi3Xt9SdewlsyuY/hSQHUyB9qvrupV8chtUHi66eajmS
|
||||||
|
5CljcY9kSJHKHMwH11w9xu/P76yA9hp7l+u/QzvAt4sBAgMBAAGjUzBRMB0GA1Ud
|
||||||
|
DgQWBBQgSk64b5N5DjHOG4PLZeq1hmzphDAfBgNVHSMEGDAWgBQgSk64b5N5DjHO
|
||||||
|
G4PLZeq1hmzphDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBG
|
||||||
|
KJ/o5HW5+XZauEOG9S51I5IHvEuMUd+3SDCIr6OZlGWma+kaGpKwJGGlTGyla1Sx
|
||||||
|
kA6i3e4NLVJjsfJVhtn/Wnxhjecv6NnjHgdiGsGkqBKms7k8WWCZghybsTvQpy7z
|
||||||
|
tTbn6t8VRW3Gun4xuTj2b9aOW/bCuVKt3F0vvneweoCAQ2S1dO/UGYjuMnVv7pI4
|
||||||
|
tGqT2L1q9xyrEgnU1jbRTGcZr4R/m1GLeD6YQS3ya/IbLRApxU5oIJSF0CSgpL4O
|
||||||
|
Eu3vHeDbc2B9HizMWOc91Fa06lagr1cI5AvvVZ6xEy1+pHl5b3HYF/XeSimAcFUK
|
||||||
|
0jWniQ5w82bNcjNYSJHa
|
||||||
|
-----END CERTIFICATE-----
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
//connecting to our signaling server
|
const conn = new WebSocket('wss://localhost:8080')
|
||||||
var conn = new WebSocket('ws://gltronic.ovh/lilstreamy/ws');
|
|
||||||
|
|
||||||
conn.onopen = function () {
|
conn.onopen = function () {
|
||||||
console.log('Connected to the signaling server')
|
console.log('Connected to the signaling server')
|
||||||
|
|||||||
27
server/key.pem
Normal file
27
server/key.pem
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpQIBAAKCAQEArgc5L/bnK6UCBK4RofqF2fwCc5kHS3+cpLSRi25y2Q/NZxOn
|
||||||
|
F+rG6T8noUEVsAH/Wui1hskHit+53uGrcWyYLEJamsVnmbqL5NECV4Qa1QN7fTXS
|
||||||
|
A885Jx+jVs0j4TsA5/Ohr2zBedgBNZGcstTyAO9nBo+6yVmkAG9XytwZjxkRlApv
|
||||||
|
6SY1x6xGhh+EvRFiNwLLV/DPIGBZAEvblrVs51mn1DB2z1dExJ4urRXeoGmhFUkd
|
||||||
|
olI4pkS08HBIghYt17fUnXsJbMrmP4UkB1Mgfar67qVfHIbVB4uunmo5kuQpY3GP
|
||||||
|
ZEiRyhzMB9dcPcbvz++sgPYae5frv0M7wLeLAQIDAQABAoIBAQCgZ+oPSt4jPXHR
|
||||||
|
zHxWN+teVEoSMPAnZ9WDfyhUQ5a6ejVSmCvBANcdMOgfWzVZSU4MhkijlvJL0BGr
|
||||||
|
3YhAAN92lCadV+05JlhBrWEiN5Lf2tjdPVl5x2yfoirVHDrBJLieE9NpNa5T14St
|
||||||
|
0qyDrYHu2Lu2sY5yfxyKhhZ+1kb8vJJK7z3NnSHN3rWJ3FMOAvQZaZnuAcaYP7GK
|
||||||
|
BgUP86aCNk2w2ke6K+BZpRE0+xv1tXwycKk2WiRb80UUmQ9hrYICThkTuVkRWcVp
|
||||||
|
Z3dZTfzJdUEJr0QQoEDBbd/4VBp1VWgUk7PstzsdB6uC1FMyQakAO+pXvZjSfskn
|
||||||
|
07zmt+9RAoGBANnBG2GKEhAziFddbR2bTSOijwgD49WNXbaYFO6GFCAukOv79smd
|
||||||
|
+WTWIhcPPyym+KSYMNjfHiizzNedF2Hya2IjkYiHsTTrqZKxCubEKDI0MUPqCEeJ
|
||||||
|
DrwBw0exkvbZa8Zfq2CZLvjtm52yynHDqwJsT1XyD+KrjMEBF1+hi4EFAoGBAMyY
|
||||||
|
DvF/wwXUAxnwN/2skR84004xosL5CXeCARDiTFGo2a+UVX3lT3jZt5fggh11D0B0
|
||||||
|
66LlJt7xlYV5XF4JqQ87REh5o/TpvnCV5yEj+JAQPxTJVz99Pn+h57Sz7N/7vTri
|
||||||
|
zdatQGz31fvTqt8d7S1/IpANID/sdM+xWzcr6XLNAoGBAMaBo9RnadAbKk96e95h
|
||||||
|
lRDHQFyuLySemq+6NFq9H9u2l6aJK5Dg0ll6W9lprM2n6UMi+mS6AWRZhIOKUaaY
|
||||||
|
uAvfIOy1xnXX3946RxXX/EzIB6FB2Apeh3Acq0jQOImP6xAMZs7I1mlXMmWwd5z+
|
||||||
|
IwcydaCD6rdYbBgGRqiHPAWBAoGALammdCoCufNGuexOYtS4ExLYvnP/kqqIfV7L
|
||||||
|
pBwN0o/v/esKZa3fXeahvkkCYVa2D7nIubORSGL87yxV/DsFu3uL0u0rNcdRlMkw
|
||||||
|
K8peeLDXk2kYivgGEfBtyXv620bRRipGrKpAXdG2tZzZXzDLtcLRUPtM/ldk/tHj
|
||||||
|
vN2VHeUCgYEAvvsPEQHlc+p2E6uyGWmMWume9pSOpUIZCfXFvDK/kJvapBsHGUNb
|
||||||
|
zlDEi+pPnhzZONbRL5a+IEeuu9z9HKHdQJJBSkE86lm7mMzgpOWhsENYUEtoCDm1
|
||||||
|
xd8ft+nbXuPR1j2M1KeB7rFeqobcDV4LaQtxBOdm9zpf3dlyBstbwwo=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
@@ -1,12 +1,18 @@
|
|||||||
const express = require('express')
|
const express = require('express')
|
||||||
|
const fs = require('fs')
|
||||||
const bodyParser = require('body-parser')
|
const bodyParser = require('body-parser')
|
||||||
const cors = require('cors')
|
const cors = require('cors')
|
||||||
const config = require('../config.json')
|
const config = require('../config.json')
|
||||||
|
const https = require('https')
|
||||||
require('./signal')
|
const WebSocketServer = require('ws').Server
|
||||||
|
|
||||||
const app = express()
|
const app = express()
|
||||||
const {port} = config
|
const server = https.createServer({
|
||||||
|
key: fs.readFileSync('key.pem'),
|
||||||
|
cert: fs.readFileSync('cert.pem')
|
||||||
|
}, app)
|
||||||
|
const wss = new WebSocketServer({ server })
|
||||||
|
const {port, ws_port} = config
|
||||||
|
|
||||||
app.use(cors())
|
app.use(cors())
|
||||||
app.use(bodyParser.urlencoded({ extended: false }))
|
app.use(bodyParser.urlencoded({ extended: false }))
|
||||||
@@ -14,6 +20,107 @@ app.use(bodyParser.json())
|
|||||||
|
|
||||||
app.use(express.static('./client'))
|
app.use(express.static('./client'))
|
||||||
|
|
||||||
app.listen(port, () => {
|
server.listen(port, () => {
|
||||||
console.log(`Launching Lil'Streamy on ${port}`)
|
console.log(`Launching Lil'Streamy on ${port}`)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var users = {}
|
||||||
|
|
||||||
|
wss.on('connection', function(connection) {
|
||||||
|
console.log('User connected')
|
||||||
|
|
||||||
|
connection.on('message', (message) => onMessage(connection, message))
|
||||||
|
|
||||||
|
connection.on('close', () => onClose(connection))
|
||||||
|
})
|
||||||
|
|
||||||
|
function sendTo(connection, message) {
|
||||||
|
connection.send(JSON.stringify(message))
|
||||||
|
}
|
||||||
|
|
||||||
|
function onClose(connection) {
|
||||||
|
if(connection.name) {
|
||||||
|
delete users[connection.name]
|
||||||
|
|
||||||
|
if(connection.otherName) {
|
||||||
|
console.log('Disconnecting from ', connection.otherName)
|
||||||
|
var conn = users[connection.otherName]
|
||||||
|
conn.otherName = null
|
||||||
|
|
||||||
|
if(conn != null) {
|
||||||
|
sendTo(conn, {
|
||||||
|
type: 'leave'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onMessage(connection, message) {
|
||||||
|
var data
|
||||||
|
|
||||||
|
try {
|
||||||
|
data = JSON.parse(message);
|
||||||
|
} catch (e) {
|
||||||
|
console.log('Invalid JSON')
|
||||||
|
data = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (data.type) {
|
||||||
|
case 'login' :
|
||||||
|
console.log('User logged', data.name);
|
||||||
|
if(users[data.name]) {
|
||||||
|
sendTo(connection, {
|
||||||
|
type: 'login',
|
||||||
|
success: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
users[data.name] = connection
|
||||||
|
connection.name = data.name
|
||||||
|
|
||||||
|
sendTo(connection, {
|
||||||
|
type: 'login',
|
||||||
|
success: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
|
||||||
|
case 'leave' :
|
||||||
|
console.log('Disconnecting from', data.name)
|
||||||
|
var conn = users[data.name]
|
||||||
|
conn.otherName = null
|
||||||
|
|
||||||
|
//notify the other user so he can disconnect his peer connection
|
||||||
|
/*
|
||||||
|
if(conn != null) {
|
||||||
|
sendTo(conn, {
|
||||||
|
type: 'leave'
|
||||||
|
});
|
||||||
|
}*/
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'userlist' :
|
||||||
|
console.log('Send list to', data.name)
|
||||||
|
sendTo(connection, {
|
||||||
|
type: 'userlist',
|
||||||
|
list: users
|
||||||
|
});
|
||||||
|
break
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (data.target){
|
||||||
|
var targetConnection = users[data.target];
|
||||||
|
if(targetConnection){
|
||||||
|
console.log('Forward message from ' + data.name + ' to ' + data.target + ' (' + data.type + ')')
|
||||||
|
sendTo(targetConnection, data)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sendTo(connection, {
|
||||||
|
type: 'error',
|
||||||
|
message: 'Command not found: ' + data.type
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user