サーチ…
構文
- 新しいEventSource( "api / stream");
- eventSource.onmessage = function(event){}
- eventSource.onerror = function(イベント){};
- eventSource.addEventListener = function(名前、コールバック、オプション){};
- eventSource.readyState;
- eventSource.url;
- eventSource.close();
サーバーへの基本イベントストリームの設定
EventSource
オブジェクトを使用して、受信したサーバーイベントをリッスンするようにクライアントブラウザーを設定できます。コンストラクタに、サーバーのイベントにクライアントをサブスクライブするサーバーのAPIのenpointへのパスの文字列を渡す必要があります。
例:
var eventSource = new EventSource("api/my-events");
イベントには分類されて送信される名前が付けられており、イベントごとに名前を聞くようにリスナーを設定する必要があります。デフォルトのイベント名はmessage
あり、それを聴くには適切なイベントリスナー、 .onmessage
evtSource.onmessage = function(event) {
var data = JSON.parse(event.data);
// do something with data
}
上記の関数は、サーバーがイベントをクライアントにプッシュするたびに実行されます。データはtext/plain
として送信されtext/plain
。JSONデータを送信する場合は、解析する必要があります。
イベントストリームを閉じる
サーバーへのイベントストリームは、 EventSource.close()
メソッドを使用して閉じることができます
var eventSource = new EventSource("api/my-events");
// do things ...
eventSource.close(); // you will not receive anymore events from this object
.close()
メソッドは、ストリームがすでに閉じられている場合は何も行いません。
イベントリスナーをEventSourceにバインドする
イベントリスナーをEventSource
オブジェクトにバインドして、 .addEventListener
メソッドを使用してさまざまなイベントチャネルをリスンすることができます。
EventSource.addEventListener(name:String、コールバック:Function、[options])
name :サーバーがイベントを送信しているチャネルの名前に関連する名前。
コールバック :コールバック関数は、チャネルにバインドされたイベントが発行されるたびに実行されます 。この関数は、 event
を引数として提供します。
options :イベントリスナーの動作を特徴付けるオプション。
次の例は、サーバーからのハートビート・イベント・ストリームを示しています。サーバーはheartbeat
チャネルでイベントを送信します。このルーチンは、イベントが受け入れられたときに常に実行されます。
var eventSource = new EventSource("api/heartbeat");
...
eventSource.addEventListener("heartbeat", function(event) {
var status = event.data;
if (status=='OK') {
// do something
}
});