情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

ウェブ開発者なら必ず知っておくべき基礎知識(13)text/event-stream

text/event-streamとはメディアタイプ(MIMEタイプ)の1つであり、イベントストリーム(イベントの流れ)を表現するための形式です。

text/event-stream形式のイベントストリームの文字コードは必ずutf-8でなければなりません。

text/event-stream形式ではイベントは名称とデータから成ります。ただし、名称はなくても構いません。デフォルトの名称はmessageです。

イベントの名称は名称の冒頭にevent:を付加することにより表します。ただし、event:の直後には1文字の空白を入れることができます。たとえば、newという名称はevent: newなどと表します。

イベントのデータはデータの冒頭にdata:を付加することにより表します。ただし、data:の直後には1文字の空白を入れることができます。たとえば、this is event data.というデータはdata: this is event data.などと表します。

また、データが複数行に亘る場合には全ての行の冒頭にdata:を付加します。たとえば、this is first line.という行とthis is second line.という行から成るデータは下のように表すことができます。

data: this is first line.
data: this is second line.

イベントを記述するには名称を記述し、改行を記述し、データを記述し、改行を記述し、改行を記述します。たとえば、3つのイベントから成るイベントストリームは下のように記述されます。

event: new
data: this is new data.

data: this is normal data.
data: which consists of two lines.

event: old
data: this is old data.

また、イベントには識別子や再接続時間を付加することもできます。再接続時間とはサーバからイベントストリームを受信する場合においてイベントストリームを受信するためのサーバとの接続が何らかの原因により切断された場合にサーバとの再接続を試行するまでに待機する時間です。ミリ秒単位で表します。

識別子は識別子の冒頭にid:を付加することにより表します。ただし、id:の直後には1文字の空白を入れることができます。たとえば、fooという識別子はid: fooなどと表します。

再接続時間は再接続時間の冒頭にretry:を付加することにより表します。ただし、retry:の直後には1文字の空白を入れることができます。たとえば、再接続時間が1000である場合にはretry: 1000などと表します。

識別子や再接続時間をイベントに付加するには独立した行として付加します。

たとえば、識別子や再接続時間が付加されたイベントは下のように記述されます。

event: new
data: this is new data.
id: foo
retry: 1000

また、イベントの代わりにコメントを記述することもできます。コメントを記述するには:を記述し、コメントの内容を記述し、改行を記述し、改行を記述します。ただし、:の直後には1文字の空白を入れることができます。たとえば、this is comment.というコメントは: this is comment.などと表します。

また、イベントストリームの冒頭にはBOM(バイトオーダーマーク)を付加することができます。

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-web