SSE (Server Sent Events) は Web 開発の世界ではあまり使用されていません。この記事では、SSE とは何か、SSE がどのように機能し、どのような利点があるのかについて詳しく説明します。あなたのアプリケーション。
SSEとは何ですか?
SSE は、HTTP 接続を介してサーバーからクライアントにリアルタイムの更新を送信するためのシンプルかつ効率的な方法です。これは HTML5 仕様の一部であり、最新のすべての Web ブラウザーでサポートされています。 SSE は単方向のデータ フローに基づいており、サーバーはクライアントにメッセージを送信しますが、クライアントはサーバーにメッセージを送り返すことはできません。
SSE は、「サーバー送信イベント」として知られるテキストベースの形式を使用して、クライアントにデータを送信します。データは一連のイベントとして送信され、各イベントにはメッセージとオプションのイベント タイプが含まれます。イベント タイプは、さまざまなタイプのメッセージを区別するために使用され、クライアントがメッセージを異なる方法で処理できるようにします。
SSEはどのように機能しますか?
SSE プロトコルは、サーバーとクライアントの間に永続的な HTTP 接続を確立することで機能します。この接続は、クライアントがサーバーから更新を受け取りたい限り開いたままになります。サーバーに送信する新しいデータがある場合、特別な MIME タイプ「text/event-stream」を使用して HTTP 応答を送信します。
応答には一連のイベントが含まれており、各イベントは改行文字 (「n」) で区切られています。各イベントの形式は次のとおりです:
event: [event type]\n data: [message]\n\n
「イベント」フィールドはオプションであり、イベントの名前を指定するために使用されます。 「データ」フィールドには、送信される実際のメッセージが含まれます。各イベントの末尾にある 2 つの改行文字は、イベントの終了を示すために使用されます。
簡単な SSE 応答の例を次に示します。
HTTP/1.1 200 OK Content-Type: text/event-stream event: message data: Hello, world! event: message data: This is a test message. event: customEvent data: {"foo": "bar", "baz": 123}
この例では、3 つのイベントをクライアントに送信します。最初の 2 つのイベントはイベント タイプ「メッセージ」を持ち、単純なテキスト メッセージが含まれています。 3 番目のイベントのイベント タイプは「customEvent」で、メッセージとして JSON オブジェクトが含まれています。
クライアントは SSE 応答を受信すると、そのデータを使用してユーザー インターフェイスを更新します。これは、たとえば JavaScript を使用して DOM を操作することで実行できます。
SSEの導入
アプリケーションへの SSE の実装は比較的簡単です。以下は、Node.js と Express フレームワークを使用して SSE を実装する方法の例です:
const express = require('express'); const app = express(); // Set up SSE endpoint app.get('/events', (req, res) => { // Set headers res.setHeader('Content-Type', 'text/event-stream'); res.setHeader('Cache-Control', 'no-cache'); res.setHeader('Connection', 'keep-alive'); // Send initial event res.write('data: Connected\n\n'); // Set interval to send periodic events const intervalId = setInterval(() => { res.write('data: Hello, world!\n\n'); }, 1000); // Clean up on connection close req.on('close', () => { clearInterval(intervalId); }); }); // Start server app.listen(3000, () => { console.log('Server started on port 3000'); });
この例では、「/events」に SSE エンドポイントを設定しています。 SSE に必要なヘッダーを設定し、接続が確立されたことを確認するためにクライアントに初期イベントを送信します。
次に、定期的なイベントをクライアントに毎秒送信する間隔を設定します。最後に、クライアントによって接続が閉じられたときの間隔をクリーンアップします。
クライアント側では、次の JavaScript コードを使用して SSE イベントをリッスンできます。
const source = new EventSource('/events'); source.addEventListener('message', (event) => { console.log(event.data); }); source.addEventListener('error', (event) => { console.error('Error:', event); });
この例では、新しい EventSource オブジェクトを作成し、SSE エンドポイントの URL を渡しています。次に、「メッセージ」イベントをリッスンし、データをコンソールに記録します。接続の問題が発生した場合に備えて、「エラー」イベントもリッスンしています。
フロントエンドの EventSource パスは GET リクエストでのみ使用できることに注意してください。POST やその他の HTTP メソッドを使用したい場合は、応答データを自分で解析する必要があります。
ネイティブの Node.js 実装が必要な場合は、ここに実装します
SSE の使用例
SSE は、リアルタイム更新を必要とする幅広いアプリケーションで使用できます。以下にいくつかの例を示します:
ソーシャル メディア プラットフォーム: SSE を使用すると、新しいメッセージ、コメント、いいね! の通知など、ソーシャル メディア プラットフォームのリアルタイム更新を提供できます。
金融アプリケーション: SSE を使用して、株価、為替レート、ニュースなどの金融アプリケーションのリアルタイム更新を提供できます。
オンライン ゲーム: SSE を使用すると、ゲーム イベント、スコア、ランキングの通知など、オンライン ゲーム アプリケーションのリアルタイム更新を提供できます。
SSE を使用する利点
ポーリングや WebSocket などの他のリアルタイム通信方法に比べて、SSE を使用すると、いくつかの利点があります。
効率
SSE は永続的な HTTP 接続を使用します。これは、接続の確立と維持にかかるオーバーヘッドが他の方法よりもはるかに低いことを意味します。これにより、SSE の効率が向上し、リソースの消費量が減ります。これは、多数のクライアントを扱う場合に特に重要です。
Kesederhanaan
SSE ialah protokol ringkas yang mudah difahami dan dilaksanakan. Ia tidak memerlukan sebarang perpustakaan atau rangka kerja khas dan boleh dilaksanakan menggunakan teknologi web standard seperti JavaScript dan HTTP.
Kebolehpercayaan
SSE ialah protokol yang boleh dipercayai yang menyediakan penyambungan semula automatik sekiranya berlaku gangguan rangkaian. Ini memastikan pelanggan akan terus menerima kemas kini walaupun sambungan terputus buat sementara waktu.
Kesimpulan
Peristiwa Dihantar Pelayan (SSE) ialah cara yang mudah dan cekap untuk menghantar kemas kini masa nyata daripada pelayan kepada klien melalui sambungan HTTP. Ia adalah sebahagian daripada spesifikasi HTML5 dan disokong oleh semua pelayar web moden. SSE menggunakan aliran data satu arah, di mana pelayan menghantar mesej kepada klien, tetapi klien tidak boleh menghantar mesej kembali ke pelayan. Ini menjimatkan anda daripada terus mengundi pelayan untuk acara, yang bukan sahaja meningkatkan prestasi tetapi juga mengurangkan kerumitan.
Jika anda mendapati ini membantu, sila pertimbangkan melanggan surat berita saya untuk lebih banyak artikel dan alatan berguna tentang pembangunan web. Terima kasih kerana membaca!
以上がサーバー送信イベント (SSE) の仕組みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

マトリックスの映画効果をあなたのページにもたらしましょう!これは、有名な映画「The Matrix」に基づいたクールなJQueryプラグインです。プラグインは、映画の古典的な緑色のキャラクター効果をシミュレートし、画像を選択するだけで、プラグインはそれを数値文字で満たされたマトリックススタイルの画像に変換します。来て、それを試してみてください、それはとても面白いです! それがどのように機能するか プラグインは画像をキャンバスにロードし、ピクセルと色の値を読み取ります。 data = ctx.getimagedata(x、y、settings.greasize、settings.greasize).data プラグインは、写真の長方形の領域を巧みに読み取り、jQueryを使用して各領域の平均色を計算します。次に、使用します

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、jQueryライブラリを使用してシンプルな画像カルーセルを作成するように導きます。 jQuery上に構築されたBXSLiderライブラリを使用し、カルーセルをセットアップするために多くの構成オプションを提供します。 今日、絵のカルーセルはウェブサイトで必須の機能になっています - 1つの写真は千の言葉よりも優れています! 画像カルーセルを使用することを決定した後、次の質問はそれを作成する方法です。まず、高品質の高解像度の写真を収集する必要があります。 次に、HTMLとJavaScriptコードを使用して画像カルーセルを作成する必要があります。ウェブ上には、さまざまな方法でカルーセルを作成するのに役立つ多くのライブラリがあります。オープンソースBXSLiderライブラリを使用します。 BXSLiderライブラリはレスポンシブデザインをサポートしているため、このライブラリで構築されたカルーセルは任意のものに適合させることができます

キーポイントJavaScriptを使用した構造的なタグ付けの強化は、ファイルサイズを削減しながら、Webページコンテンツのアクセシビリティと保守性を大幅に向上させることができます。 JavaScriptを効果的に使用して、Cite属性を使用して参照リンクを自動的にブロック参照に挿入するなど、HTML要素に機能を動的に追加できます。 JavaScriptを構造化されたタグと統合することで、ページの更新を必要としないタブパネルなどの動的なユーザーインターフェイスを作成できます。 JavaScriptの強化がWebページの基本的な機能を妨げないようにすることが重要です。 高度なJavaScriptテクノロジーを使用できます(

データセットは、APIモデルとさまざまなビジネスプロセスの構築に非常に不可欠です。これが、CSVのインポートとエクスポートが頻繁に必要な機能である理由です。このチュートリアルでは、Angular内でCSVファイルをダウンロードおよびインポートする方法を学びます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック



