Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Server-Sent Events

Autor: Piotr Karpiuk o piątek 19. Listopad 2010

SSE to kolejna technologia komunikacji serwera z przeglądarką w ramach nowego standardu HTML5. Pozwala ona zestawić wydajny, jednokierunkowy kanał komunikacyjny w którym serwer pcha komunikaty do przeglądarki (aktualizacja statusu, zmiany kursów akcji, itp.). W odróżnieniu od WebSockets nie wymaga implementowania nowego protokołu i wykorzystuje HTTP. W kodzie JavaScript strony piszemy:

  var source = new EventSource('http://localhost/blog/events.php');
  source.addEventListener('message', function (event) {
    alert(event.data);
  });

Gdy połączenie HTTP zostanie zerwane, przeglądarka automatycznie zestawi nowe.

Oprócz zdarzenia message przeglądarka może również nasłuchiwać zdarzeń open (gdy kanał zostanie otwarty) i error (gdy wystąpi błąd), oraz zamknąć kanał wykonując close() na obiekcie EventSource.

Od strony serwera istotne jest aby nagłówek HTTP zawierał pozycje:

  Content-Type: text/event-stream
  Cache-Control: no-cache

Każdy komunikat ma postać:

  data: first linen
  data: second linenn

Tzn. może być wielowierszowy przy czym każdy wiersz zaczyna się prefiksem data:, a kończy się podwójnym znakiem końca wiersza.

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>