問題タブ [event-stream]
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.
perl - Perl Mojolicious + PgAsync プラグイン -- データベース接続のリーク?
Postgresデータベースから発行されているイベントをリッスンするために、pgAsyncというプラグインでMojoliciousを使用しています。私が現在持っているコードは正常に動作していますが、データベース接続の数は増え続けています。NOTIFY
バックエンド
ご覧のとおり、これを希望どおりに機能させるには、ちょっとしたハッカーを行う必要がありました。 pg_listen
呼び出しのたびにコールバックを未定義にしているように見えました。pg_listen
これは、再度呼び出したときにエラーを引き起こしていました(未定義だったため)。これに対するチェックを追加するために、PgAsync::Db.pmの 34 行目を変更する必要がありました。
->to->
フロントエンド
Mojolicious スクリプトからのプッシュ通知をリッスンするために、 EventSourceオブジェクトで JavaScript を使用しています。
問題
よく見ると、このシステムは、より多くのデータベース接続を継続的に作成しているようです。
何もないところから始めて、1 つのデータベース接続があります。
select count(*) from pg_stat_activity;
morbo と Mojolicious スクリプトを で開始し
DEBUG_PG=1 morbo mojopush.pl
ます。現在、2 つのデータベース接続があります (1 つ目は psql の me で、2 つ目は morbo です)。EventSource オブジェクトを含む Web ページを開きます。
GET
content-type でリクエストを正しく設定text/event-stream
し、接続を開いたままにします。現在、3 つのデータベース接続がありますpsql に入って sendを実行
NOTIFY foo, 'test'
すると、Mojo スクリプトがそれを検出し、Web ページに「test. まだ 3 つの db 接続があります。ページを更新すると、現在 4 つのデータベース接続があります。300 秒の非アクティブ タイムアウトを待つと、さらに別のデータベース接続が作成され、5 つの接続が発生します。
誰かが私を正しい方向に向けるのを助けることができれば、それは非常にありがたいです!
javascript - Node.js event-stream:MaxListeners を設定する場所は?
私はこれを検索して検索しましたが、役に立ちませんでした。私はWeb(Stackoverflowを含む)とNodeのドキュメントを調べて答えを探しましたが、うまくいったものは見つかりませんでした(私の検索が悪いだけかもしれません)。私は gulp 構成ファイルでイベント ストリームを操作しています。また、EventEmitter クラスからの従来の「メモリ リークが検出されました」というエラーが発生している特定のタスクがあります。私が見つけたところによると、この問題に対処するための答えは、EventEmitter クラスの setMaxListeners メソッドを呼び出すことのようです。私の調査によると、イベントストリームには Stream オブジェクトがあり、これは EventEmitter のインスタンスである必要があります。ただし、どのように setMaxListeners を呼び出そうとしても、メソッドが見つかりません。この問題の調査に疲れ果てた後、私はそれをここの Node グルに持ち込むことにしました (I' これは単純だと思いますが、何かが足りないだけです)。これが私のコードです:
ありがとう!
javascript - event-stream.through と event-stream.map の違いは何ですか
event-streamのドキュメントによると、この 2 つの方法の違いは同期または非同期のようです。しかし、その違いが実際に何を意味するのかはまだわかりません。
java - Android アプリケーション (Java) で Rails SSE ストリーミング ページに接続するにはどうすればよいですか?
ActionController::Live
サーバーから送信されたイベント (HTML5 SSE、content-type data/event-stream) をストリーミングするために使用するバックエンドに Rails ルートを設定しています。理想的には、サーバーから送信されたイベントを処理するための Java ライブラリを使用して、Android フロントエンドでこのルートと直接やり取りしたいと考えています。ただし、SSE 用の Java バックエンド (J2EE) ライブラリ以外は見つからないようです。私の質問は 2 つあります: Java/Android SSE クライアント ライブラリは存在しますか?存在しない場合、SSE が最終的に抽象化するより単純な方法はありますか?別のタイプのライブラリまたは通常の Android ネットワークを使用できますか?
node.js - event-stream は nodejs で非 utf-8 エンコーディングをサポートしていますか?
次のように、ファイルを1行ずつアップロードして解析しようとしています。
しかし、残念ながら、utf-8 エンコーディングで 'line' 文字列を取得します。evented-stream 変更エンコーディングを防ぐことは可能ですか?
javascript - ノードjs eventemitterでイベントリスナーを適切に削除する方法
私は GET と POST ルートを設定しました。ルートへの POST がイベントをトリガーし、GET ルートは POST イベントがトリガーされるたびに起動するサーバー送信イベントストリームです...しかし、私はイベントストリームサブスクライバーが1つしかないにもかかわらず、イベントリスナーが定期的に追加されるように見えるので、何か間違ったことをしたと思います...何が間違っていますか?