LoginSignup
1
1

More than 1 year has passed since last update.

概要

サーバーからクライアントにpush送信するイベント。

本来のクライアントがリクエストしてレスポンスを貰うという、
クライアントで発火したイベントタイミングでの通信とは違い、
サーバー側のタイミングで通信を行う(イメージ)。

流れ

  1. クライアントがリクエストURLを渡してEventSourceオブジェクトを生成する
  2. サーバー側は上記リクエストを検知しpush配信を開始する
  3. クライアントはpush配信を監視し、サーバーからのメッセージを待ち受ける

実装

サーバー側

MIME タイプ text/event-stream で応答するように実装する。
(この記事では詳しくは説明しない)

クライアント側

EventSourceオブジェクト生成

これによりサーバーにpush配信を開始させるリクエストを送る。

const evtSource = new EventSource(requestUrl);

サーバーからのメッセージ受け取り

push配信を受け取ったタイミングでonmessageに代入した関数が発火する。
クライアント側は受け取ったメッセージを利用して処理を行うことができる。

evtSource.onmessage = function(event: MessageEvent<string>) {
  const message: string = event.message
  // 受信したメッセージを用いてクライアント側を更新
}

参考

https://developer.mozilla.org/ja/docs/Web/API/Server-sent_events
https://developer.mozilla.org/ja/docs/Web/API/Server-sent_events/Using_server-sent_events

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1