イベントを送信するためにHTML5サーバのEventSource(サーバー・送信されるイベント)

参考文献:

サーバー(サーバー送信されるイベント)がHTML5シナリオは何であるイベントを送信するには?

W3school HTML 5サーバー、送信されたイベント

 

ポーリングの前端に加えて、「背景情報プッシュ機能」、scoket、サードパーティのサービス(例えばwilddogなど)、時間は良い解決策であることはありません。ただ、本当に新しい発見:HTML5サーバーのEventSource(サーバー・送信されるイベント)イベントを送信します

全体的な経験は、ソケットの簡易版です。そしてないソケットの代わりに、シーンに合わせだけで、クライアントに耳を傾ける例サービス側にメッセージを送信する必要を必要としません。

問題がまだあります:実際には、世論調査では3秒です。しかし、私はAPIは、周波数を設定することができますかわからない......

 

index.htmlを

<!DOCTYPE HTML > 
< HTML のlang = 'en'と> 

< > 
    < メタのcharset = 'UTF-8' > 
</ ヘッド> 

< 身体> 
    < div要素のid = 'アプリ' > </ DIV > 
</ ボディ> 
< スクリプト> 
constのアプリ= のdocument.getElementById(' アプリ' 
constのソース=  新しいのEventSource(" のhttp:

/ * * 
 *のEventSourceサポートされているイベント、3 ...ある
 * 
    「イベント処理メソッド」、「名前」、「ヘルプ」
    サーバーへの接続が成功したときに生成を開く時開く
    メッセージは、イベントがonMessageのサーバに送信し受信したときに生成される
    エラーが発生した場合には、 ONERROR生成時
 * / 
source.onmessage = E => { 
    app.innerHTML + = e.data +  ' <BR> ' 
} 
</ スクリプト> 

</ HTML >

 

SSE.php

<?PHPの
 ヘッダ( 'Content-Typeの:テキスト/イベントストリーム' ); 
 ヘッダ( 'のCache-Control:キャッシュなし' ); 

$時間 = DATE( 'R&LT' ); 

/ * * 
 *⚠️注意点
 * 1.情報は、PHPを使用してプッシュする"\ nは\ n"は終わりをマークします。
 *テストの後、そうでない場合に「\ N \ N」は終わりを示します。
 *その後、クライアントがプッシュされた値を受信しません。
 * 
 * 2.メッセージ形式は押さなければならない"データ:コンテンツ\ N- \ N-" 
 * / 
エコー "データ:サーバーの時刻::{ $時間 } \ N- \ N-" ; 
 フラッシュ();

 

次のような効果があります

 

おすすめ

転載: www.cnblogs.com/CyLee/p/11440496.html