2016-10-19 2 views
2

私は、サーバからブラウザに0.5秒ごとにデータをプッシュするために、SSEを使用しているプロジェクトで作業しています。サーバー送信イベントがブラウザに何らかの負荷をかける可能性はありますか?

これは、MysqlのデータをJSONで変換してブラウザに送信します。

私は極端なシナリオで、ブラウザが数ヶ月間働いているのだろうと考えていました(可能です)。サーバーは1日にブラウザに2.764.800 JSONを送信します。それは月に82.944.000プッシュになります。

このシナリオには何か問題がありますか?つまり、ブラウザに過負荷がかかるような方法や、クライアントシステムにそのようなデータ量があるのでしょうか?

X秒ごとにページの更新を正当化できるシーンはありますか?

答えて

1

さらに詳しい説明がない限り、答えは「おそらく、ページをリフレッシュする必要はありません」です。

私の知る限り、物事のSSE側には特に制限はありません。したがって、サーバーからデータ項目を受け取ったり、divの値を更新したり、受信したデータを保存したりしないという典型的な例では、メモリが増えることはありません。 1秒に2回も問題ありません。

データを格納する場合(最後のN値をグラフ化するなど)、最後のNより古い値が定期的に破棄されるようにする必要があります。

私の懸念は他のどこでも次のようになります。

  • ブラウザのバグ
  • Javascriptのメモリ管理。 (は、このテーマに関する良い議論になります; here
  • 信頼性の低いインターネット - 一部のサーバーまたはルータが途中で終了したソケットを閉じることを決定しています長い時間を開いてください。 (SSEはことがが起こるだけで自動再接続する必要があり - 。私は時々、ソケットが非きれいに閉じ取得、また、上にいくつかのキープアライブメッセージを追加することを好むが)どのくらい

また、自分自身を頼むかもしれません人々はブラウザを開いたままにして、これが何かであれば心配する必要があります。

取引アプリケーションでは、私は市場を閉鎖しています(毎日であろうと金曜日の夜であろうと)、故意にソケットを閉じるのが良い点です。

+0

こんにちはダーレン、それは病院のアプリ(だから、24/7時)です。それはイントラネットで動作します。私はLEMPスタックを使用しています。 0.5秒ごとに、情報を取得してSSE-JSONを介してクライアントに送信するデータベースに対するクエリがあります。データベースは、通常のフォームおよびIoTデバイスからデータを受信します。この瞬間には、データベースで変更されたフィールドだけが表示されます。しかし、次のステップはリアルタイムでチャートを表示することです(取引アプリケーションのように)。私はPHPから来る時間(時計)をユーザに提示し、サーバとの接続が実行され、データが更新されます。 – zwitterion

+0

時計が止まったら、接続に問題があるためです。そして、60秒ごとにページをリフレッシュして接続を確認し、安定して正しく動作するようにするコードを作成します。 – zwitterion

+0

2つ目のポイント「Javascriptのメモリ管理」をより良く説明できますか? – zwitterion

関連する問題