問題タブ [eventsource]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cqrs - マイクロサービスのイベント ドリブン アーキテクチャにはいくつのデータベースがありますか?
私は、マイクロサービス システムの有用なアーキテクチャとして EventSource を使用する CQRS に関するドキュメント、ブログ投稿、および例をたくさん読みました。
4 つのマイクロサービスがあることは明らかですが、「コマンド側」のマイクロサービスには独自のデータベースがないため、わかりません。
この画像では、すべてのマイクロサービスが同じ eventStore データベースを使用していますが、これはマイクロサービス パターンに反しているのでしょうか?
そして、EventStore db はどのようにすべきでしょうか? シングルテーブル?サービスごとに 1 つのテーブル ?
javascript - Chrome が複数のサーバー送信リクエストを送信できないようにする
を受け入れるエンドポイントがあり、text/event-stream
基本的に と の 2 つの異なるタイプのイベントを送信stats
しますresult
。サーバーresult
がイベントを送信し、接続を閉じるとき。
問題は、sse の設計上、ブラウザーが接続を再試行することです。それを防ぐために、リトライ値を 60000 などのより高い数値に設定し、結果が得られたらクライアントで接続を閉じます。
問題は、待ち時間が長い場合、Chrome が複数のリクエストをサーバーに送信することです (localhost では問題なく動作します)。Safari と Firefox は問題なく動作します。Chromeでは、ネットワークタブにリクエストが1つしかないため、リクエストがタイムアウトしたためにChromeがサーバーに接続しようとすることはないと思います。また、2番目のリクエストを送信するため、サーバーが最初のリクエストを閉じるのを待ちません。Chrome でこの問題が発生する原因は何ですか?
注: サーバーが送信したリクエストのエンドポイントとオリジンは異なります。通常の HTTP リクエストの場合、Chrome は権限を確認するために OPTIONS リクエストを追加で送信しますが、SSE の場合は OPTIONS プリフライト リクエストを送信しませんが、SSE は GET リクエストであるため、これが問題であるかどうかはわかりません。
websocket - SIGNALR がポーリングよりも Forever Frames を好むのはなぜですか?
私は SignalR の使い方を学んでいますが、これまでのところ成功しています。ハブを実装したり、ビジネス ロジックを実装したり、必要なサーバーからクライアント側関数を呼び出したり、クライアント側からサーバー側メソッドを呼び出したりできます。これは素晴らしいことです。私を困惑させているのは理論です。
実際、このビデオから情報を収集しました。SignalR は、単一のTCP接続を介して全二重チャネルを提供するWebSocketsを使用しています。利用可能な WebSocket がない場合、フォールバック プロトコルはEventSourceになります。それが利用できない場合は、Forever Frame が使用されます。それが利用できない場合は、ロング ポーリングが使用されます。永遠のフレームのような非常にハックなソリューションが古い慣習よりも好まれるのは私にとってかなり奇妙であり、3番目のオプションとして永遠のフレームを持ち、4番目のオプションとしてポーリングするというSignalRの決定の背後にある理論的根拠に興味があります。
私はこの質問に対する答えを見つけようとしましたが、長いポーリングの場合、永遠のフレームと比較して 3 倍の最大待ち時間があると噂されていることがわかりました。これは事実ですか? もしそうなら、それはすべてのブラウザの事実ですか、それともサブセットの事実ですか?
java - Spring Bootを使用してイベントソースサーバーを作成するには?
スプリングブートアプリケーションを使用してイベントソースサーバーを作成するには? 以下のリンクから、Java-spring ブートの例が表示されません。どんな参考書も役に立ちます。
polyfills - yaffle イベント ソース ポリフィルを含める方法
https://github.com/Yaffle/EventSource
IE11で動作するように約束したいので、上記を使用しました。npmでインストールしましたが、どのように実装するかわかりません。私は自分のjsファイルで試しimport event-source-polyfill
ましたが、それもうまくいきませんでした。ドキュメントにはビルドを実行するだけと書かれていますが、node_modules/event-source-polyfill ディレクトリに min.js ファイルが既に表示されている場合、その目的は何ですか? 実際にどのように含めるのですか?
ruby-on-rails - ActionController::Live を含むコントローラーのテスト
ActionController::Live
Railsモジュールを含むコントローラーがあります。FileTail
gem を使用SSE
して読み取られているログファイルの内容を表示し、次のActionController::Live
ように使用しています。
live
を使用してアクションをテストしたいRspec
。これは私が現在持っているものです:
適切な行がない場合after
、スペックはパスしますが、リッスンし続け、接続が閉じられることはありません。したがって、スペックは終了せず、手動で強制終了する必要があります。
私がafter
行を持っている場合、それは時々合格しますが、ほとんどの場合、例外がスローされ、スペックが失敗します.
これを機能させる方法はありますか?おそらく、これをテストする必要がある特定の方法があり、どこにも見つけることができません。