問題タブ [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.

0 投票する
1 に答える
493 参照

server-sent-events - Sinatra および Thin の Server Sent Events (SSE) が切断と再接続を繰り返す

会社のデータの一部を多かれ少なかれリアルタイムで追跡するための小さな Sinatra アプリケーションを作成しました。

セットアップは、dashing.io / とほとんど同じです。

  • Rufus Scheduler ジョブは、特定の間隔でデータベースにクエリを実行するために使用されます。
  • クエリ結果は SSE 接続ストリームに返されます。
  • クライアントはストリーム (erb ビューの javascript で定義) にサブスクライブし、ハイチャートなどを使用してさまざまな方法でデータを表示します。

これはすべてうまく機能しますが、ジョブを毎分よりも少ない頻度で実行すると、クライアントが常に切断されて再接続されることに気付きました。説明させてください:

サブスクリプションの JavaScript コードは次のようになります。

ジョブを 30 秒ごとに実行すると、すべてが完全に機能します。Chrome (または Firefox) のコンソールを見ると、次のことがわかります。

ただし、ジョブ間隔を 3 分に調整すると、コンソールはクライアントが常に切断されることを明らかにします。

クライアントはまだ入力時にデータを取得できるように見えるので、最終結果はこれに悩まされません。私の質問は、この絶え間ない切断/再接続は通常の動作ですか? データがストリーミングされる頻度に関係なく、クライアントは接続を開いたままにしておくべきではありませんか?

0 投票する
0 に答える
446 参照

python - Pythonフラスコアプリでサーバー送信イベントをブロードキャストする方法は?

条件に基づいて特定のレコードを取得し、msgarr に保存しています。

ここでサーバー送信イベントを使用しています(現在、socketioまたはその他の概念を使用するための提案は必要ありません)。ブラウザーを開いたときに、msgarr からのデータが完全にプッシュされます。

しかし、別のコンピューターまたは電話で別のブラウザーを開くと、msgarr からのデータがこのブラウザーまたは他のブラウザーにプッシュされます。そのランダム。

接続されているすべてのブラウザーが msgarr からデータを取得できるようにするにはどうすればよいですか?

以下は私のpythonフラスコサーバーコードです:

Python フラスコ サーバー:

以下は私のクライアントコードです:

0 投票する
1 に答える
4401 参照

javascript - この EventSource がメッセージとエラーを繰り返しトリガーするのはなぜですか?

クライアント側は次のようになります。

POST リクエストを処理するサーバー側 Node.js は次のようになります。

クライアント側から POST 要求データを送信するとresponse.end()、期待どおりに返されますが、数秒ごとのイベントesに加えて、数秒ごとにエラーが発生します。messageただし、messageイベントがトリガーされると、アラートが表示されますが、その""理由はわかりません。誰でもこの動作を理解するのを手伝ってもらえますか?

編集:とイベントをチェックしes.readyStateました。にあるので、切断された結果である可能性があります。この繰り返しの切断が発生するのはなぜですか? また、接続と切断を繰り返すと、イベントが繰り返されるのはなぜでしょうか?messageerrorreadyState0errormessage

0 投票する
2 に答える
14003 参照

typescript - (サーバー送信) EventSource から RxJS Observable を作成する

EventSource (サーバー送信イベント) から RxJs Observable を作成したいと思います。

私は次のことを試しました:

しかし、次の例外が発生します。

完全を期すために、ここに私の index.html の内容を示します。

誰か助けてくれませんか?

編集 1 : Yurzui のアドバイスに従って、コードを次のように変更しました。

次のように、コンソールに最初のメッセージを記録します。

ここで、変数をコンソールに記録する代わりにx、次のように次のメソッドに渡します。

サーバーが送信したイベントはクライアントによって取得されます (Chrome 開発ツールで確認できます) が、文字列の配列が入力されていないことを示すテンプレートには何も表示されません...

ちなみに、JSON.parse(x.data)エラーが発生していたので削除する必要がありました。

0 投票する
1 に答える
279 参照

c# - EventSource が SQL データベースに書き込んでいない

EventSource を使用して、EnterpriseLibrary.SemanticLogging によってイベントを SQL データベースに記録しています。

以下はテスト方法です:

また、ApplicationEventSource クラスは、次のメソッドで EventSource から派生します。

WriteEvent 中にエラーは発生していませんが、テーブルTraceには何も記録されていません

0 投票する
3 に答える
9039 参照

typescript - Angular2/typescript と SSE (EventSource)

まず第一に、私は ng2 と typescript にまったく慣れていません。

私が達成しようとしているのは、Angular2 コンポーネントに Server-Sent イベントを実装することです。ここの初期の投稿で言及されている例に従いましたが、私の問題は、「EventSource」オブジェクトが認識されないことです (VS Code の赤い下線)。

いくつかの参照が欠落しているかどうかわかりません...私の参照は次のとおりです。

これは、eventsource クライアントを実装した方法です。

0 投票する
0 に答える
50 参照

javascript - Fullcalendar - Server-Sent Event メッセージのイベントをクライアントが削除するとイベントが消える

fullcalendar イベントが変更、削除、または追加されたことを他のクライアントに通知するサーバーがあります。変更と追加は問題なく機能しますが、eventsource リスナー内のイベントを削除しようとすると、すべてのイベントが消えます。誰かが理由を知っていますか?fullcalendar の angularJS フォークを使用しており、eventsource リスナー内のイベントを削除するコードは次のようになります。また、すべてのイベントを削除し、新しいイベントについてデータベースにクエリを実行しようとしましたが、Web サイトの完全なリロードが実行されない限り、フルカレンダーは何もレンダリングしません。