Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

nodejs sse

var http = require('http');
var sys = require('sys');
var fs = require('fs');

http.createServer(function(req, res) {
  //debugHeaders(req);

  if (req.headers.accept && req.headers.accept == 'text/event-stream') {
    if (req.url == '/events') {
      sendSSE(req, res);
    } else {
      res.writeHead(404);
      res.end();
    }
  } else {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(fs.readFileSync(__dirname + '/sse-node.html'));
    res.end();
  }
}).listen(8000);

function sendSSE(req, res) {
  res.writeHead(200, {
    'Content-Type': 'text/event-stream',
    'Cache-Control': 'no-cache',
    'Connection': 'keep-alive'
  });

  var id = (new Date()).toLocaleTimeString();

  // Sends a SSE every 5 seconds on a single connection.
  setInterval(function() {
    constructSSE(res, id, (new Date()).toLocaleTimeString());
  }, 5000);

  constructSSE(res, id, (new Date()).toLocaleTimeString());
}

function constructSSE(res, id, data) {
  res.write('id: ' + id + '
');
  res.write("data: " + data + '

');
}

function debugHeaders(req) {
  sys.puts('URL: ' + req.url);
  for (var key in req.headers) {
    sys.puts(key + ': ' + req.headers[key]);
  }
  sys.puts('

');
}
Comment

PREVIOUS NEXT
Code Example
Javascript :: array within array javascript 
Javascript :: dot notation vs bracket notation 
Javascript :: eslint ignore javascript 
Javascript :: React-native-background-fetch 
Javascript :: how to use location.pathname 
Javascript :: javascript grpc timestamp 
Javascript :: apexcharts bar onclick index 
Javascript :: how to access variable from another component in angular 
Javascript :: update reducer 
Javascript :: how to use settimeout in react 
Javascript :: table checkbox react 
Javascript :: js for await 
Javascript :: how to fetch data redux 
Javascript :: nodemailer 
Javascript :: js while loop 
Javascript :: nodejs: router by use express and path package 
Javascript :: LRANGE in redis 
Javascript :: vue js documentation 
Javascript :: resize canvas 
Javascript :: loading screen fivem js 
Javascript :: axios 
Javascript :: promise definition in javascript 
Javascript :: native stack vs stack 
Javascript :: mdn trimstart 
Javascript :: get html 
Javascript :: req is not defined 
Javascript :: javascript promise async 
Javascript :: web animation api keyframe options 
Javascript :: cypress run all files in folder 
Javascript :: arrow function example 
ADD CONTENT
Topic
Content
Source link
Name
2+8 =