Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const http = require('http');
- const express = require('express');
- const WebSocket = require('ws');
- const app = express();
- app.use('/readonly', (_, res) => {
- res.sendFile(__dirname + '/readonly.html');
- });
- let messages = [];
- app.get('/messages', (_, res) => {
- res.header("Content-Type", "text/event-stream");
- res.header("Cache-Control", "no-cache");
- res.header("Connection", "keep-alive");
- setInterval(() => {
- res.write('data: ' + JSON.stringify(messages) + '\n\n');
- }, 100);
- });
- app.use('/', (_, res) => {
- res.sendFile(__dirname + '/index.html');
- });
- const server = http.createServer(app);
- const wss = new WebSocket.Server({ server });
- wss.on('connection', (ws) => {
- ws.on('message', (message) => {
- console.log('Msg received in server: %s ', message);
- messages.push(message);
- wss.clients.forEach((client) => {
- if (client !== ws && client.readyState === WebSocket.OPEN)
- client.send(message);
- });
- });
- });
- server.listen(8080);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement