Content-Type: text/event-stream冒頭のContent-TypeとCache-Controlはヘッダー情報として送られるため、実際にコンテンツとして送信されるのは「data:……」という部分になります。このように、data:で始まるテキストが送られら場合(すなわち、何のイベント名も設定されていない場合)、EventSourceではonmessageイベントが発生します。
Cache-Control: no-cache
data: ……送信内容……
Content-Type: text/event-streamこれが、カスタム・イベントを利用する場合の出力です。ヘッダー部分は全く同じですが、コンテンツの部分が違っています。まず「event:……」という文が送られ、それから「data:……」が送られます。この「event:」の後に記述されるのが、イベント名です。このようにして送られたメッセージは、EventSourceオブジェクトでは、event:で指定されたイベントが発生したものとして扱われます。
Cache-Control: no-cache
event: イベント名
data: ……送信内容……
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※event.phpの修正
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$msgs = array("Hello","Welcome.","こんにちは。","やっほ~",
"ではでは。","お元気?","ニーハオ","ボンジュ~ル","スパシーボ♥","ばいば~い!!");
$n = rand(0,9);
if ($n == 0){ echo "event: start\n"; }
if ($n == 9){ echo "event: end\n"; }
echo "data: " . $msgs[$n] . "\n\n";
flush();
?>
| << 前へ | 次へ >> |