Server-Sent Eventsを利用する

Node.jsをインストールして、app.js を起動してください。
その後 http://localhost:8000 にアクセスすると、コンソールにServer-Sent Eventsによる通信の内容が表示されます。

このページに埋め込まれているServer-Sent Eventsのクライアントコード

var stream = new EventSource('stream');

stream.addEventListener('ping', function(event) {
  console.log('ping event: ' + event.data);
}, false);

stream.addEventListener('message', function(event) {
  console.log('data: ' + event.data);
}, false);
  

サーバーコード(app.js)の内容

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

http.createServer(function(req, res) {

  // 同じドメインでないと利用できないためクライアントコード(list.html)もサーバから配信
  if (req.url === '/') {
    res.writeHead(200, { 'Content-Type': 'text/html' });
    res.write(fs.readFileSync('list.html'));
    res.end();
  } else if (req.url === '/stream') {
    res.writeHead(200, { 'Content-Type': 'text/event-stream' });

    var timer = setInterval(function() {
      res.write('event: ping\n');
      res.write('data: ' + (new Date()) + '\n\n');
      res.write('data: Hello World\n\n');
    }, 1000);

    req.on('close', function() {
      clearInterval(timer);
      res.end();
    });
  } else {
    res.writeHead(404);
    res.end();
  }
}).listen(8000, '127.0.0.1');

console.log('Server running at http://127.0.0.1:8000/');