コンテンツにスキップ

EventSource

背景

EventSourceインターフェースは、サーバーがクライアントにイベントをプッシュすることを可能にするサーバー送信イベントAPIです。EventSourceオブジェクトは、サーバー送信イベントを受信するために使用されます。これはHTTPを介してサーバーに接続し、テキストベースの形式でイベントを受信します。

コンストラクタ

let eventSource = new EventSource(url, options);
  • url USVString - 接続するURL。
  • options EventSourceInit - 任意の設定を含むオプションの辞書。

デフォルトでは、EventSourceはリクエストを行うためにグローバルなfetch()関数を使用します。Cloudflare Workersバインディングによって提供される異なるフェッチ実装を使用する必要がある場合は、fetcherオプションを渡すことができます:

export default {
async fetch(req, env) {
let eventSource = new EventSource(url, { fetcher: env.MYFETCHER });
// ...
}
};

fetcherオプションはCloudflare Workers特有の拡張であることに注意してください。

プロパティ

  • eventSource.url USVString 読み取り専用
    • イベントソースのURL。
  • eventSource.readyState USVString 読み取り専用
    • 接続の状態。
  • eventSource.withCredentials Boolean 読み取り専用
    • EventSourceオブジェクトがクロスオリジン(CORS)資格情報を設定してインスタンス化されたかどうかを示すBoolean(true)またはそうでないか(false)。

メソッド

  • eventSource.close()
    • 接続を閉じます。
  • eventSource.onopen
    • 接続が開かれたときに呼び出されるイベントハンドラー。
  • eventSource.onmessage
    • メッセージが受信されたときに呼び出されるイベントハンドラー。
  • eventSource.onerror
    • エラーが発生したときに呼び出されるイベントハンドラー。

イベント

  • message
    • メッセージが受信されたときに発火します。
  • open
    • 接続が開かれたときに発火します。
  • error
    • エラーが発生したときに発火します。

クラスメソッド

  • EventSource.from(readableStreamReadableStream) : EventSource
    • これは、既存のReadableStreamから新しいEventSourceオブジェクトを作成するCloudflare Workers特有の拡張です。このインスタンスは新しい接続を開始するのではなく、提供されたストリームに接続します。