ネットワーク
上級

Server-Sent Eventsサーバーセントイベンツ

HTTP単方向Push配信(SSE・EventSource API)。text/event-stream・MIME・data:/event:/id:/retry:構造、LLMストリーミング(OpenAI/Anthropic API)・Next.js Server Actions streaming・Supabase Postgres Changes・Vercel AI SDK・Hono Stream対応が2026年代表、WebSocket比軽量。

0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
EventSource
text/event-stream
Vercel AI SDK
Stream

概要

Server‑Sent Events(SSE)は、HTTPを用いてサーバーがクライアントへ一方向にデータをプッシュする仕組みです。
クライアントは EventSource API を介して text/event-stream MIME タイプのストリームを受信し、
data:, event:, id:, retry: などのフィールドで構成されるメッセージを逐次処理します。
WebSocket と比べてヘッダーが軽量で、TCP の確立・終了が 1 回だけで済むため、
低レイテンシで 10 GbE 以上の帯域を持つサーバー環境でも安定した配信が可能です。
2025年に登場した Vercel AI SDK では、LLM のストリーミング応答を SSE で受け取るサンプルが公開され、
2026年には Hono Stream が正式リリースされ、SSE のサーバーサイド実装がさらに簡素化されました。

主な特徴・仕組み

  • 単方向通信:サーバーからクライアントへのみデータが流れ、クライアントは送信できない。
  • 自動再接続retry: フィールドで再接続間隔を指定でき、ネットワーク障害時に自動で再接続。
  • テキストベース:バイナリデータは Base64 でエンコードして送信するため、HTTP の既存インフラで利用可能。
  • 軽量ヘッダー:WebSocket のようなフレームヘッダーが不要で、1 KB 以内のオーバーヘッド。
  • ブラウザネイティブ:主要ブラウザが標準でサポートし、追加ライブラリ不要。
  • ストリーミング API:Next.js Server Actions で response.body をストリーム化し、SSE と組み合わせるケースが増加。
  • データベース変更通知:Supabase の Postgres 変更トリガーを SSE でリアルタイムにクライアントへ送信。
  • LLM 連携:OpenAI/Anthropic の API で生成されるチャットレスポンスを data: フィールドで逐次送信。
  • 低消費電力:サーバー側は 3.5 W 以内で動作し、データセンターの電力コストを抑制。
  • スケーラビリティ:10 GbE のネットワークを備えた Intel Xeon W‑3303 で 1 TB の NVMe ストレージを搭載し、
    1 万クライアントに同時配信を実現。

スペック/製品比較表

製品CPUメモリストレージネットワーク主要用途
RTX 50905.7 GHz24 GB GDDR71.5 TB NVMe10 GbE高負荷 AI 推論
Ryzen 9 9950X3D4.5 GHz32 GB DDR5‑60002 TB NVMe10 GbEデータベースサーバ
Core Ultra 9 285K3.8 GHz16 GB DDR5‑6000512 GB NVMe10 GbEWeb アプリサーバ
DDR5‑600016 GB高速キャッシュ
PCIe 5.0 x16GPU 接続

具体例・対応製品

  • Vercel AI SDK:2025年にリリースされた SDK で、SSE を利用したチャットボットのストリーミングが可能。
  • Hono Stream:2026年に正式リリースされ、SSE を簡易 API で実装できる。
  • Supabase Postgres Changes:データベースの変更をリアルタイムで EventSource に送信。
  • OpenAI / Anthropic API:LLM の生成結果を data: フィールドで逐次送信し、ブラウザに即時表示。
  • Next.js Server Actions:サーバー側で生成したストリームを response.body としてクライアントへ送信。

自作PCでの選び方・注意点

  • CPU:SSE は CPU への負荷が低いが、同時接続数が多い場合は 4 GHz 以上のクロックが望ましい。
  • メモリ:256 MB 以上のキャッシュを備えた CPU を選択し、同時接続数に応じて 8 GB 以上の DDR5 を搭載。
  • ストレージ:1 TB NVMe 以上で、データの書き込みレイテンシを抑える。
  • ネットワーク:10 GbE 以上の NIC を採用し、帯域を確保。
  • 電源:3.5 W 以内で動作するサーバー構成を目指し、80 % 程度の効率を持つ 650 W 以上の PSU を選択。
  • OS:Linux の systemdEventSource を扱う場合、systemd‑socket‑activated を利用するとスケールが向上。
  • ファイアウォール:ポート 80/443 を開放し、text/event-stream の MIME タイプを許可。
  • 監視:Prometheus で http_requests_total を監視し、SSE の接続数を可視化。
  • バックアップ:データベースは 1 TB の SSD を RAID 1 で構成し、障害時の復旧を速める。
  • 冷却:高負荷時に 70 °C を超えないよう、液体冷却を検討。

関連用語との違い

  • WebSocket:双方向通信でフレームヘッダーが必要。SSE は単方向でヘッダーが軽量。
  • HTTP/2 Server Push:リクエストに対して複数のレスポンスを送るが、SSE はストリームを継続的に送信。
  • MQTT:IoT 専用プロトコルで軽量だが、SSE は標準 HTTP で実装可能。
  • GraphQL Subscriptions:サーバー側で WebSocket を利用するケースが多い。SSE は単純なテキストストリームで実装。

よくある質問

Q1. SSE は 2026年のサーバーに対応していますか?
A1. はい。Hono Stream で 2026年にリリースされたサーバーは、SSE をネイティブにサポートしています。

Q2. SSE の再接続は自動で行われますか?
A2. retry: フィールドで再接続間隔を指定でき、ブラウザが自動で再接続します。

Q3. SSE でバイナリデータを送ることは可能ですか?
A3. はい。Base64 でエンコードして data: フィールドに入れることで送信できます。

まとめ

Server‑Sent Events は、HTTP の既存インフラを活用しつつ、低レイテンシで高スケールの単方向通信を実現する技術です。
2025年以降の AI SDK や 2026年に登場した Hono Stream など、最新の開発環境で容易に導入できる点が魅力。
自作PCで構築する際は、CPU、メモリ、ストレージ、ネットワークをバランス良く選択し、SSE の軽量特性を最大限に活かす設計が重要です。
次世代のリアルタイム Web アプリケーションにおいて、SSE は WebSocket と並ぶ選択肢として確固たる位置を占めています。

この記事について
カテゴリーネットワーク
難易度上級
作成日2026/4/21