HTML5のサーバーに送信されイベント(サーバーに送信されイベント)
HTML5サーバは、イベント(サーバー送信されるイベント)を送信するWebページがサーバーから更新を取得することができます。
サーバーに送信されイベント - 方向性メッセージング
サーバーに送信されたイベントは、自動的にサーバからアップデートを取得するウェブサイトです。
以前にもそのように行うことができ、ページは更新が利用可能であるかどうかを確認するために持っていたことを提供します。 サーバーがイベントを送信し、更新が自動的に到着します。
例:Facebookの/ Twitterのアップデート、評価の更新、新しいブログ、トーナメントの結果のように。
ブラウザのサポート
すべての主要なブラウザは、Internet Explorerに加えて、イベントを送信し、サーバーでサポートされています。
サーバーに送信され、イベントの通知を受け取ります
EventSourceオブジェクトは、サーバによって送信されるイベント通知を受信するために使用されます。
例
var source=new EventSource("demo_sse.php");
source.onmessage=function(event)
{
document.getElementById("result").innerHTML+=event.data + "<br>";
};
source.onmessage=function(event)
{
document.getElementById("result").innerHTML+=event.data + "<br>";
};
»をお試しください
分析の例:
- EventSourceは、新しいオブジェクトを作成し、ページの更新規則のURLを送信する(この場合は、「demo_sse.php」)
- それぞれが、onMessageのイベントが発生したアップデートを受信しました
- onMessageのイベントが発生すると、受信したデータは、ID「結果」要素内に押し込まれます
検出サーバに送信されイベントのサポート
以下の例では、我々はによってサポートされているイベントを送信するためにサーバにブラウザを検出するために、いくつかの追加のコードを記述します。
(typeof演算(のEventSource)!== "未定義")の場合
{
//ブラウザがサーバーに送信されをサポートしています
//いくつかのコード.....
}
ほかに
{
//ブラウザがサーバーに送信されサポートしていません..
}
{
//ブラウザがサーバーに送信されをサポートしています
//いくつかのコード.....
}
ほかに
{
//ブラウザがサーバーに送信されサポートしていません..
}
サーバー側コードの例
上記の例を作るために、あなたはまた、(そのようなPHPやASPなど)のサーバーを更新するためにデータを送信できるようにする必要があり、実行することができます。
構文サーバー側のイベントストリームは非常に簡単です。 「Content-Typeの「ヘッダー」は、テキスト/イベント・ストリーム」に設定されています。 これで、イベントフローの送信を開始することができます。
例
<?phpの
ヘッダー( 'Content-Typeの:テキスト /イベントストリーム');
ヘッダー( 'のCache-Control:なし -cache');
$時間=日付( 'R' );
エコー"データ:サーバ時間がある :{$時間} \ N \ N";
フラッシュ ();
?>
ヘッダー( 'Content-Typeの:テキスト /イベントストリーム');
ヘッダー( 'のCache-Control:なし -cache');
$時間=日付( 'R' );
エコー"データ:サーバ時間がある :{$時間} \ N \ N";
フラッシュ ();
?>
ASPコード(VB)(demo_sse.asp):
<%
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>
コードの説明:
- ヘッダの "Content-Typeが" "テキスト/イベント・ストリーム」に設定されています
- 提供は、ページをキャッシュしません
- 出力伝送日(常に "データ:"先頭)
- 出力データにページを更新
EventSourceオブジェクト
上記の例では、メッセージのonMessageイベントを取得するために使用しました。 しかし、あなたはまた、他のイベントを使用することができます。
事件 | 描述 |
---|---|
onopen | 当通往服务器的连接被打开 |
onmessage | 当接收到消息 |
onerror | 当发生错误 |