freechat/rtc-server/main.js
shockrah 2a1881db20 + Adding commandline parameter parser for specifying wss-hmac and api-hmac
The respective flags are -w|--wss-hmac and -H|--hmac
Default values are wss-hmac.secre hmac.secrett respectively
2021-04-27 13:24:59 -07:00

40 lines
961 B
JavaScript

const ws = require('ws')
const _ = require('./cmdline.js') // initializing the command line params first
const auth = require('./auth.js')
const server = new ws.Server({
port: 5648,
clientTracking: true
})
server.on('connection', function(socket, req) {
const [jwt, path] = auth.prepare_auth(req)
const conn = auth.verify(jwt)
if(conn == 'server') {
console.log('[WSS] New server connection')
socket.on('close', function() {
console.log('[WSS] Server connection closed')
})
socket.on('message', function(message) {
// do some parsing, then emit to everyone
server.clients.forEach(client => {
if (client !== socket && client.readyState === ws.OPEN) {
client.send(message)
}
})
})
} else if(conn == 'user') {
console.log('[WSS] New user connection')
socket.on('close', function() {
console.log('[WSS] User connection closed')
})
} else {
console.log('[WSS] No valid auth', conn)
socket.close()
}
})