問題タブ [event-driven]
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.
node.js - イベント駆動型アプリケーション用のPAASホスティングプラットフォームはありますか?
小さなイベント駆動型のWebSocketサーバーアプリケーション(NodeJS、Python Twistedなど)をデプロイするためのPAASホスティングサービスを探しています。
c# - Help with event driven TCP server
I'm working on an "application system" , where I also need to make a server application. I'm working in C# (.NET 4.0). The server will mainly collect data from different POS applications / clients (which should be around 50-100, but the server should be capable of handling also around 200-300 clients). From a single client a server will probably receive around 1KB about 100x times a day. The server mainly needs to accept the data, decrypt it and store it to disk. It should also check for changes in specific directory in order to send new configurations to clients, which shouldn't be very often.
I'm quite new to C# and server programming so please bear with me. I thought about using threadpooling and async methods (there is a nice example using that in a book "C# in a nutshell"). But I spend quite some time looking for best solution and I found this. But multithreading brings more problems than benefits in my case. Thus I thought about even driven server. "A single process, handle every event (accepted connection, data available to read, can write to client, ...) on a callback." from " what is event driven web server". I find that the best solution to my problem.
But I have no idea on how to code it, I couldn't find any examples about event driven servers. As far as I understand it I should make one thread (+ 1 for GUI), then create a TCP listener and then somehow create events so that when TCP listener could accept a client the event would fire and wake up the server, also when data to read from clients would be available it would wake up the server.
Please help me out to code this, I'm totally lost. I know how I could do this using
But that is not event driven and is wasting CPU. Server will not be very active, so I'd like to make it as efficient as possible.
Some examples would really help.
Thank you for your time and answers.
p.s. Can I use just one port for all the clients?
EDIT: To clarify, I want to code an event driven server, but I don't know how to, thus I just made an example of what I know (client polling).
c++ - nodejs は libevent の実行とどう違うのですか?
私は、nodeJS に今得られる超同時実行性を与えるものに興味があります。私は実際にこれらのいずれかをそれほど使用したことはなく、暇なときに両方で遊んだだけです.
ノードが設定できると約束する数千の接続のように聞こえますが、libevent を使用しても、たとえば C++ でそれを行うことができます。
javascript - 非DOMオブジェクトでのjQueryカスタムイベント
最近、次のようなコードを読みました。
これは機能しているようです。
しかし、セレクターでもDOMノードでもないオブジェクトを使用してjQueryコンストラクターを呼び出すことについてのjQueryドキュメントまたはソースには何も見つかりません。だから私の質問は、これはサポートされている使用法ですか、それとも本質的に偶然に機能しているのですか?
JavaScriptのモデルオブジェクトまたはビューオブジェクトにイベント駆動型モデルを使用したい場合、どのように使用しますか?
javascript - JavaScriptのonclickイベント関数
ボタン付きのHTMLページにJavaScriptコードがあります。ボタンclick()
のイベントを処理するという関数があります。onClick
ボタンのコードは次のとおりです。
問題は、ボタンがクリックされたときに関数が呼び出されないことです。私はここで何が間違っているのですか?
c++ - ファイル記述子とミューテックスの両方を待ちたいのですが、これを行うための推奨される方法は何ですか?
特定のタスクを実行するためにスレッドを生成し、スレッドセーフキューを使用してそれらと通信したいと思います。また、待っている間、さまざまなファイル記述子に対してIOを実行したいと思います。
これを達成するための推奨される方法は何ですか?キューが要素なしから一部の要素に移動したときに、スレッド間パイプを作成して書き込む必要がありますか?もっと良い方法はありませんか?
また、スレッド間パイプを作成する必要がある場合、共有キューを実装するライブラリを増やして、共有キューとスレッド間パイプを単一のエンティティとして作成できないのはなぜですか?
私がこれをやりたいという事実は、根本的な設計上の欠陥を意味しますか?
私はこれをC++とPythonの両方について尋ねています。そして、私はクロスプラットフォームソリューションに少し興味がありますが、主にLinuxに興味があります。
より具体的な例については...
ファイルシステムツリー内のものを検索するコードがいくつかあります。私はいくつかの通信チャネルをソケットを通して外の世界に開いています。ファイルシステムツリー内のものを検索する必要がある(またはない)リクエストが到着します。
1つ以上のスレッドでファイルシステムツリー内のものを検索するコードを分離します。ツリーを検索する必要が生じたリクエストを受け取り、それらをサーチャースレッドによって実行されることのスレッドセーフキューに入れたいと思います。結果は、完了した検索のキューに入れられます。
検索が行われている間、すべての非検索要求に迅速に対応できるようにしたいと思います。タイムリーに検索結果に対応できるようにしたいと思います。
着信要求を処理することは、通常、を使用するある種のイベント駆動型アーキテクチャを意味しますepoll
。ディスク検索要求のキューと結果の戻りキューは、ミューテックスまたはセマフォを使用してスレッドセーフを実装するスレッドセーフキューを意味します。
空のキューで待機する標準的な方法は、条件変数を使用することです。しかし、待っている間に他のリクエストを処理する必要がある場合、それは機能しません。結局、結果キューを常にポーリングし(そして、平均してポーリング間隔の半分だけ結果を遅らせる)、リクエストをブロックし、サービスを提供しません。
ruby-on-rails - EventMachine vs Node.js
共同サイトを開発するつもりです。機能の 1 つは、リアルタイムの変更による共同編集です。つまり、2 人以上のユーザーが同じドキュメントを編集している場合、変更が発生するとすぐに互いの変更を確認できます。私は Ruby on Rails の経験があるので、EventMachine を使用することを考えていましたが、Node.js に関するこの誇大宣伝により、代わりに使用することを検討していることはわかっています。では、EventMachine の代わりに Node.js を使用する主な利点は何でしょうか?
tl;dr EventMachine と Node.js の主な違いは何ですか (言語以外)?
architecture - 保守可能なイベント ドリブン コードの記述
私はつい最近、かなり標準的なオブジェクト指向の考え方から、イベント駆動型アーキテクチャを使い始めました。
私が最初に気付いたのは、プログラムの理解とトレースの難しさが、プログラムのサイズに応じて指数関数的に増加しているように見えるということでした。小さなペットのプロジェクトは簡単にフォローできますが、コードはすぐにスパゲッティに変わるように感じます.
私はこの開発の考え方に不慣れであり、オブジェクト指向の懸念のすべてが引き継がれるわけではないことを理解しています. 保守可能で理解しやすいイベント駆動型コードを作成するためのリソースはありますか? node.js や Twisted、Event Machine を使っている人はこれについてどうしていますか?
asp.net - Node.js のイベント駆動型と何が違うのでしょうか? ASP.Net の HttpAsyncHandler でそれを行うことはできませんか?
私は Web プログラミングの経験があまりなく、Node.js で実際にコーディングしたことはまだありません。イベント駆動型のアプローチに興味があるだけです。良さそうです。
この記事では、スレッドベースのアプローチを使用してリクエストを処理するときに発生する可能性のあるいくつかの悪いことについて説明しており、代わりにイベント駆動型のアプローチを選択する必要があります。スレッドベースでは、食品/リソースの準備が整うまで、レジ係/スレッドは私たちと一緒にいます。イベント駆動型では、レジ係はリクエスト キューのどこかに私たちを送ってくれるので、食べ物を待っている間に他のリクエストをブロックすることはありません。ブロッキングをスレッドベースでスケーリングするには、スレッド数を増やす必要があります。私には、これはスレッド/スレッドプールを適切に使用しないことの悪い言い訳のように思えます。
IHttpAsyncHandler を使用して適切に処理できませんでしたか? ASP.Net はリクエストを受信し、ThreadPool を使用してハンドラー (BeginProcessRequest) を実行し、その内部でコールバックを使用してファイル/データベースをロードします。その後、そのスレッドは自由に他のリクエストを処理できるようになります。ファイルの読み取りが完了すると、ThreadPool が再び呼び出されてアクションが実行され、残りの応答が実行されます。私にとってはそれほど違いはありませんが、なぜそれほどスケーラブルではないのでしょうか?
私が知っているスレッドベースの欠点の 1 つは、スレッドを使用するとより多くのメモリが必要になることです。しかし、これだけあれば、マルチコアのメリットを享受できます。Node.jsがスレッド/コアをまったく使用していないとは思えません。
したがって、イベント駆動型とスレッドベースのみに基づいて (「Javascript とすべてのブラウザーのため...」という議論を持ち込まないでください)、代わりに Node.js を使用することの実際の利点を誰かが指摘できますか?既存の技術?
それは長い質問でした。ありがとう :)