EventSource インターフェイスは、Server-sent events を受け取るために使用します。HTTP でサーバーと接続して、接続を切断せずに text/event-stream 形式でイベントを受信します。
コンストラクター
EventSource()- 指定した
USVStringから、新しいEventSourceを作成します。
プロパティ
このインターフェイスは、親である EventTarget からプロパティを継承します。
EventSource.readyState読取専用- 接続の状態を表す数値です。許容値は
CONNECTING(0)、OPEN(1)、CLOSED(2) です。 EventSource.url読取専用- ソースの URL を表す
DOMStringです。 EventSource.withCredentials読取専用EventSourceオブジェクトが、CORS クレデンシャルを設定してインスタンス化されたか (true)、設定されずにインスタンス化されたか (false、既定値) を示すBooleanです。
イベントハンドラー
EventSource.onerror- エラーが発生して、
EventSourceオブジェクトでerrorイベントが発生したときに呼び出されるEventHandlerです。 EventSource.onmessagemessageイベントを受け取ったとき、すなわち発信元からメッセージが到着したときに呼び出されるEventHandlerです。EventSource.onopenopenイベントを受け取ったとき、すなわち接続を開始したときに呼び出されるEventHandlerです。
メソッド
このインターフェイスは、親である EventTarget からメソッドを継承します。
EventSource.close()- 接続を切断して、
readyState属性をCLOSEDに設定します。すでに切断されている場合は何も行いません。
例
var evtSource = new EventSource('sse.php');
var eventList = document.querySelector('ul');
evtSource.onmessage = function(e) {
var newElement = document.createElement("li");
newElement.textContent = "message: " + e.data;
eventList.appendChild(newElement);
}
注記: この例の全容が GitHub にあります。Simple SSE demo using PHP をご覧ください。
仕様
| 仕様書 | 策定状況 | コメント |
|---|---|---|
| HTML Living Standard EventSource の定義 |
現行の標準 |
ブラウザー実装状況
| 機能 | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| EventSource のサポート | 6 | 未サポート | 6.0 (6.0) | 未サポート | (有) | 5 |
| shared worker、dedicated worker で使用可能[1] | (有) | 未サポート | 53.0 (53.0) | 未サポート | (有) | (有) |
| 機能 | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| EventSource のサポート | 4.4 | 45 | 未サポート | 12 | 4.1 |
| shared worker、dedicated worker で使用可能[1] | (有) | 53.0 (53.0) | 未サポート | (有) | (有) |