Server-sent events

  • Revision slug: Server-sent_events
  • Revision title: Server-sent events
  • Revision id: 299747
  • Created:
  • Creator: teoli
  • Is current revision? No
  • Comment To fix template errors.

Revision Content

Traditionally, a web page has to send a request to the server to receive new data; that is, the page requests data from the server. With server-sent events, it's possible for a server to send new data to a web page at any time, by pushing messages to the web page. These incoming messages can be treated as Events + data inside the web page.

Documentation

Using server-sent events
A tutorial guide to writing both server and client side part of a server-sent events app.
EventSource reference
A reference to the client-side EventSource API.

View All...

Tools

 

AJAXJavaScript, WebSockets

See also

Specification

Browser compatibility

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
EventSource support 9 {{ CompatGeckoDesktop("6.0") }} {{ CompatUnknown() }} 11 5
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
EventSource support {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }}

 

Revision Source

<p>Traditionally, a web page has to send a request to the server to receive new data; that is, the page requests data from the server. With server-sent events, it's possible for a server to send new data to a web page at any time, by pushing messages to the web page. These incoming messages can be treated as <em><a href="/en/DOM/event" title="en/DOM/Event">Events</a> + data</em> inside the web page.</p>
<table class="topicpage-table">
  <tbody>
    <tr>
      <td>
        <h4 id="Documentation" name="Documentation">Documentation</h4>
        <dl>
          <dt>
            <a href="/en/Server-sent_events/Using_server-sent_events" title="en/Server-sent events/Using server-sent events">Using server-sent events</a></dt>
          <dd>
            A tutorial guide to writing both server and client side part of a server-sent events app.</dd>
          <dt>
            <a href="/en/Server-sent_events/EventSource" title="en/Server-sent events/EventSource">EventSource reference</a></dt>
          <dd>
            A reference to the client-side EventSource API.</dd>
        </dl>
        <p><span class="alllinks"><a href="/Special:Tags?tag=Server-sent_events&amp;language=en" title="Special:Tags?tag=Server-sent events&amp;language=en">View All...</a></span></p>
      </td>
      <td>
        <h4 id="Tools" name="Tools">Tools</h4>
        <ul>
          <li>Remy Sharp’s <a class="link-https" href="https://github.com/remy/polyfills/blob/master/EventSource.js">EventSource polyfill</a></li>
          <li>Yaffle’s <a class="link-https" href="https://github.com/Yaffle/EventSource" title="https://github.com/Yaffle/EventSource">EventSource polyfill</a></li>
          <li>Rick Waldron’s <a class="link-https" href="https://github.com/rwldrn/jquery.eventsource">jquery plugin</a></li>
        </ul>
        <p>&nbsp;</p>
        <h4 id="Related_Topics" name="Related_Topics">Related Topics</h4>
        <dl>
          <dd>
            <a href="/en/AJAX" title="en/AJAX">AJAX</a>,&nbsp;<a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/WebSockets" title="en/WebSockets">WebSockets</a></dd>
        </dl>
      </td>
    </tr>
  </tbody>
</table>
<h2 id="See_also">See also</h2>
<ul>
  <li>A <a class="external" href="http://hacks.mozilla.org/2011/06/a-wall-powered-by-eventsource-and-server-sent-events/" title="http://hacks.mozilla.org/2011/06/a-wall-powered-by-eventsource-and-server-sent-events/">Twitter like application</a> powered by server-sent events and <a class="link-https" href="https://github.com/mozilla/webowonder-demos/tree/master/demos/friends%20timeline" title="https://github.com/mozilla/webowonder-demos/tree/master/demos/friends timeline">its code on Github</a>.</li>
  <li><a class="external" href="http://dsheiko.com/weblog/html5-and-server-sent-events" title="http://dsheiko.com/weblog/html5-and-server-sent-events">HTML5 and Server-sent events</a></li>
</ul>
<h2 id="Specification">Specification</h2>
<ul>
  <li><a class="external" href="http://dev.w3.org/html5/eventsource/" title="http://dev.w3.org/html5/eventsource/">Server-sent events</a></li>
</ul>
<h2 id="Browser_compatibility">Browser compatibility</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Feature</th>
        <th>Chrome</th>
        <th>Firefox (Gecko)</th>
        <th>Internet Explorer</th>
        <th>Opera</th>
        <th>Safari</th>
      </tr>
      <tr>
        <td>EventSource support</td>
        <td>9</td>
        <td>{{ CompatGeckoDesktop("6.0") }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>11</td>
        <td>5</td>
      </tr>
    </tbody>
  </table>
</div>
<div id="compat-mobile">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Feature</th>
        <th>Android</th>
        <th>Firefox Mobile (Gecko)</th>
        <th>IE Mobile</th>
        <th>Opera Mobile</th>
        <th>Safari Mobile</th>
      </tr>
      <tr>
        <td>EventSource support</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
      </tr>
    </tbody>
  </table>
</div>
<p>&nbsp;</p>
Revert to this revision