From 87c3bce5fccd90364c373eb40d6e321c9f9b8fe7 Mon Sep 17 00:00:00 2001 From: Eunchong Kim Date: Sun, 8 Aug 2021 00:02:25 +0900 Subject: [PATCH] Added general websocket server --- ws_server.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 ws_server.js diff --git a/ws_server.js b/ws_server.js new file mode 100644 index 0000000..eb275a3 --- /dev/null +++ b/ws_server.js @@ -0,0 +1,48 @@ +//ws_server.js +// +// WebSocket Server in JavaScript + + + +// Create an HTTP server +const PORT = process.env.PORT || 3000; +const INDEX = '/index.html'; + +const express = require('express'); +const server = express() + .use((req, res) => res.sendFile(INDEX, { root: __dirname })) + .listen(PORT, () => console.log(`Listening on ${PORT}`)); + +// Create a WebSocket server +const { Server } = require('ws'); + +const wss = new Server({ server }); + + +// Handle connections +wss.on('connection', (ws) => { + console.log('Client connected'); + + // Handle when received data + // Brige data to all clients + ws.onmessage = function(evt) { + console.log(evt.data); + wss.clients.forEach((client) => { + client.send(evt.data); + }); + } + + // Handle when closed + //ws.on('close', () => console.log('Client disconnected')); + ws.onclose = function() { + console.log('Client disconnected') + } +}); + + +// Broadcast updates +//setInterval(() => { +// wss.clients.forEach((client) => { +// client.send(new Date().toTimeString()); +// }); +//}, 1000);