Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

EventSource

最終更新 Markdown で表示Agent セットアップ

背景

EventSource インターフェイスは、サーバーがクライアントへイベントをプッシュできる Server-Sent Events API です。EventSource オブジェクトは、サーバー送信イベントの受信に使います。HTTP でサーバーに接続し、テキスト形式でイベントを受け取ります。

コンストラクター

let eventSource = new EventSource(url, options);
  • url USVString - 接続先の URL です。
  • options EventSourceInit - 任意設定を入れる、省略可能な辞書です。

既定では、EventSource は裏側でグローバルの fetch() 関数を使ってリクエストします。Cloudflare Workers のバインディングが提供する別の fetch 実装が必要な場合は、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)認証情報あり(true)で生成したか、なし(false)で生成したかを示す Boolean です。

メソッド

  • eventSource.close()
    • 接続を閉じます。
  • eventSource.onopen
    • 接続が開いたときに呼ばれるイベントハンドラーです。
  • eventSource.onmessage
    • メッセージを受け取ったときに呼ばれるイベントハンドラーです。
  • eventSource.onerror
    • エラーが起きたときに呼ばれるイベントハンドラーです。

イベント

  • message
    • メッセージを受け取ったときに発生します。
  • open
    • 接続が開いたときに発生します。
  • error
    • エラーが起きたときに発生します。

クラスメソッド

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

役に立ちましたか?