genuinex-screen-sync-server
Version:
GenuineX key value sync server
45 lines (37 loc) • 844 B
JavaScript
/**
* @format
*/
;
const http = require('http');
const express = require('express');
const cors = require('cors');
const WebSocket = require('ws');
const router = require('./router');
// Config
const port = process.env.NODE_PORT || 8080;
const app = express();
const server = http.createServer(app);
// Setup WebSocket
const wss = new WebSocket.Server({
server, path: '/subscribe'
});
wss.broadcast = (data) => {
const str = JSON.stringify(data);
wss.clients.forEach(client => {
if (client.readyState === WebSocket.OPEN) {
client.send(str);
}
});
}
// Express middlware
app.use(express.json());
app.use(cors({ origin: true }));
app.use((req, res, next) => {
req.ws = wss;
return next();
});
// Install router
app.use(router);
server.listen(port, () => {
console.log('listening on ' + port);
});