Server-Sent イベントは、Webページがサーバからの更新を取得することを可能にします。
server-sent は、 Web ページがサーバから自動的に更新を取得するときのイベントです。
これは、以前にも可能でしたが、Web ページは、利用できる更新があるかどうかを問合せる必要がありました。 server-sent イベントを使用すると、更新が自動的に送信されて来ます。
例:Facebook/Twitter の更新、株価の更新、ニュースフィード、スポーツの結果など。
表中の数字は、完全にServer-Sent イベントをサポートした最初のブラウザのバージョンを示しています。
API | |||||
---|---|---|---|---|---|
SSE | 6.0 | Not supported | 6.0 | 5.0 | 11.5 |
EventSource オブジェクトは、server-sent イベント通知を受信するために使用します:
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";
};
例の説明:
上記 tryit の例の中に、server-sent イベントのブラウザ・サポートを確認するため、いくつかの特別なコードがあります:
上記の例を動かすには、データ更新を送信できるサーバ(PHP や ASP など)が必要です。
サーバ・サイド・イベント·ストリームの構文は簡単で、 "text/event-stream" を "Content-Type" ヘッダに 設定するだけです。これで、イベントストリームの送信を開始することができます。
PHP コード(demo_sse.php):
ASP (VB) コード(demo_sse.html):
コードの説明:
上記例では、メッセージの取得に onmessage イベントを使用しましたが、他のイベントも用意されています:
イベント | 説明 |
---|---|
onopen | サーバへの接続がオープンされたとき |
onmessage | メッセ-ジを受信したとき |
onerror | エラーが発生したとき |