サーチ…


構文

  • 新しい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
  }
});


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow