問題タブ [event-driven-design]

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 に答える
147 参照

c# - 複数プロジェクト ソリューションにおけるイベント ドリブン設計

Xamarin.ios で iOS アプリケーションを実行しようとしています。Websocket を使用してアプリにイベントを送信できるサーバーがあります。ただし、このイベントを処理する関数は別のプロジェクトで実装されています。

したがって、サーバーが新しいイベントを送信した場合、新しいイベントが到着したことを iOS プロジェクトに伝えたいと思います。両方のプロジェクトを相互に参照できないため、返品できません。

1 つのソリューションで複数のプロジェクトのイベント ドリブン設計を実装するにはどうすればよいですか?

これが私の現在のコードです:

iOS プロジェクト

一般的なプロジェクト (私のイベントが到着する場所)

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

events - イベント ドリブン トポロジのメディエータについて

私は、イベント駆動型アーキテクチャのバリエーションと呼ばれるこの記事を読んでいて、メディエーターとブローカーの両方のトポロジーを示しています。

記事によると、メディエータのトポロジは次のようになります。

メディエータ トポロジ

イベント フローは、クライアントがイベントをイベント キューに送信することから始まります。イベント キューは、イベントをメディエーターに転送するために使用されます。イベント メディエーターは初期イベントを受信し、追加の非同期イベントをイベント チャネルに送信してプロセスの各ステップを実行することで、そのイベントを調整します。イベント チャネルでリッスンするイベント プロセッサは、イベント メディエーターからイベントを受信し、特定のビジネス ロジックを実行してイベントを処理します [...] イベント メディエーターは、必要なビジネス ロジックを実際には実行しないことに注意してください。最初のイベントを処理するのではなく、イベントを処理するために必要な手順を知っています [...] イベント チャネルは、メッセージ キューまたはメッセージ トピックのいずれかです。

そのため、私はこの図を調べて、特定のプロセッサーが特定のイベントの処理を終了したことをメディエーターがどのように判断して、プロセスの次のステップを調整できるかを理解しようとしていました。

それが言うとき、記事は十分に明確ではありません

初期イベント ステップごとに、イベント メディエータは処理イベントを作成し、その処理イベントを送信して、対応するイベント プロセッサによって処理イベントが処理されるのを待ちます。このプロセスは、最初のイベントのすべてのステップが処理されるまで続きます。

これで、通信が非同期であり、イベント メッセージがメッセージ キューを通過するという点でこの記事は明確ですが、図には、イベント プロセッサから出てメディエータに戻るイベントは示されていません。

この記事では、メディエータはイベント プロセッサが終了するまで待機すると述べていますが、これがアーキテクチャの観点からどのように行われるのかは明確ではありません。

非同期のキューベースの RPC (例: Rabbit RPC ) ですか、それともどこかで非同期応答を待っている別のリスナーがありますか?

アーキテクチャの観点からこれをどのように実装できるかについて何か考えはありますか?

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

javascript - JS コールバックを再帰的に使用するには?

コードのこの部分が機能しません。ツリー ビューの一部を作成することを想定しています。klassification_ajax のコールバックは、関数の実行後に機能するはずですが、while ループの異なる繰り返しで他の ajax 呼び出しが原因で、まったく機能しません。反復が 1 回だけの場合は、他の ajax 呼び出しに干渉しないため動作しますが、2 回目の反復では同時に発生し、結果としてどれも機能しません。次に、それらの反復をネストされたコールバックとして作成して、段階的に機能させる必要があることに気付きましたが、どのように?????

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

c# - イベント駆動型プログラミングで関数を次々と呼び出す

私は、ソフトウェアがハードウェア パネルに対してコマンドを発行し、コマンドが発行されると、その応答が数秒後に受信されるソフトウェアに取り組んでいます。次のようなさまざまなハードウェアコマンドにはさまざまな機能があります

および他のコマンドを実行するために使用される同じパターンの他の関数。

コマンド A の応答を受け取ったら、その応答から別の関数を呼び出しますが、このアプローチは設計パターンの慣行からすると適切ではありません。

私がやりたいことは、関数のリストを作成し、これらすべての関数を次々に呼び出すことですが、最初の関数の応答を取得すると、次の関数が呼び出されます。

マルチキャストデリゲートを使用してこれを試しましたが、すべての関数をそのデリゲートに追加すると、関数のリストを取得する方法を見つけることができません。これは私がやろうとしていることです。