2

HTML5 の新しいサーバー送信イベントの技術的背景に興味があります。そこで実際に何が起こるのでしょうか?

  • サーバー側で特別な機能は必要ありません。いつものようにデータを送信するだけです。例: html
  • HTTP は依然として要求/応答プロトコルです。私の意見では、新しいコンテンツタイプ「テキスト/イベントストリーム」はそれを変えません

では、この概念は「単純な古い長いポーリング」のカプセル化されたバージョンにすぎませんか? 一方、それはしばしばサーバーへの永続的な双方向接続として説明されます..私の意見では、それは何か違うでしょう. これがhttp上でどのように機能するかを理解したいだけです。

4

1 に答える 1

3

これは、データの準備が整うまで接続を開いたままにするのではなく、チャンク転送エンコーディングに依存する、ロング ポーリングというよりも永久フレームのコード化です。イベントで送信されるデータは単なるテキストですが、そのテキストはもちろん HTML にすることができます。それを適切に処理するかどうかは、アプリ次第です。イベント ストリーム内のアイテムは次のようになります。

event: message
data: Any text data you want goes here

ブラウザーでこのチャンクを受信すると、おなじみの方法でキャプチャできるイベントが表示messageされます。EventSourceaddEventListener("message", callback)

永久フレーム (またはロング ポーリング) に対する主な利点は、標準化されたインターフェイスです (基本的に、既存の作業コードを更新する価値はありません) 。Web ソケットに対する主な利点は、プロセスが長時間実行される安価な共有ホスティングで問題なく動作することです。許可されていません。

PS 技術的な詳細はすべて仕様書に記載されています

于 2012-11-13T16:17:16.993 に答える