Advertisement
Guest User

Untitled

a guest
May 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. const http = require('http');
  2. const express = require('express');
  3. const WebSocket = require('ws');
  4.  
  5. const app = express();
  6.  
  7. app.use('/readonly', (_, res) => {
  8. res.sendFile(__dirname + '/readonly.html');
  9. });
  10.  
  11. let messages = [];
  12. app.get('/messages', (_, res) => {
  13. res.header("Content-Type", "text/event-stream");
  14. res.header("Cache-Control", "no-cache");
  15. res.header("Connection", "keep-alive");
  16.  
  17. setInterval(() => {
  18. res.write('data: ' + JSON.stringify(messages) + '\n\n');
  19. }, 100);
  20. });
  21.  
  22. app.use('/', (_, res) => {
  23. res.sendFile(__dirname + '/index.html');
  24. });
  25.  
  26. const server = http.createServer(app);
  27.  
  28. const wss = new WebSocket.Server({ server });
  29.  
  30. wss.on('connection', (ws) => {
  31. ws.on('message', (message) => {
  32. console.log('Msg received in server: %s ', message);
  33. messages.push(message);
  34. wss.clients.forEach((client) => {
  35. if (client !== ws && client.readyState === WebSocket.OPEN)
  36. client.send(message);
  37. });
  38. });
  39. });
  40.  
  41. server.listen(8080);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement