タグ付けされた質問 「publish-subscribe」

4
オブザーバー、Pub / Sub、データバインディングの違い
オブザーバーパターン、パブリッシュ/サブスクライブ、データバインディングの違いは何ですか? Stack Overflowで少し検索したところ、良い答えは見つかりませんでした。 私が信じるようになったのは、データバインディングは一般的な用語であり、ObserverパターンやPub / Subパターンなど、それを実装するさまざまな方法があるということです。オブザーバーパターンでは、Observableがオブザーバーを更新します。Pub / Subを使用すると、0人のパブリッシャーが特定のクラスのメッセージをパブリッシュでき、0人のサブスクライバーが特定のクラスのメッセージをサブスクライブできます。 「データバインディング」を実装する他のパターンはありますか?

7
なぜパブリッシュ/サブスクライブパターン(JS / jQuery)を使用するのですか?
そのため、同僚からパブリッシュ/サブスクライブパターン(JS / jQuery)が紹介されましたが、「通常の」JavaScript / jQueryよりもこのパターンを使用する理由を理解するのに苦労しています。 たとえば、以前は次のコードがありました... $container.on('click', '.remove_order', function(event) { event.preventDefault(); var orders = $(this).parents('form:first').find('div.order'); if (orders.length > 2) { orders.last().remove(); } }); そして、代わりにこれを行うことのメリットを見ることができました... removeOrder = function(orders) { if (orders.length > 2) { orders.last().remove(); } } $container.on('click', '.remove_order', function(event) { event.preventDefault(); removeOrder($(this).parents('form:first').find('div.order')); }); removeOrderさまざまなイベントなどで機能を再利用する機能が導入されているためです。 しかし、同じことをするのに、なぜパブリッシュ/サブスクライブパターンを実装して次の長さに進むことにしたのですか?(参考までに、jQuery tiny pub / subを使用しました) removeOrder …

3
Faye対Socket.IO(およびJuggernaut)
Socket.IOは、最も人気がありアクティブなWebSocketエミュレーションライブラリのようです。Juggernautはそれを使用して完全なpub / subシステムを作成します。 Fayeも人気がありアクティブであり、独自のJavaScriptライブラリを備えているため、Juggernautに匹敵する完全な機能を備えています。Juggernautはサーバーにノードを使用し、Fayeはノードまたはラックを使用できます。Juggernautは永続化にRedisを使用し(訂正: pub / subにRedisを使用)、Fayeは状態をメモリにのみ保持します。 上記はすべて正確ですか? フェイはバイユーを実装していると言います-私はジャガーノートがこれをしないと思います-それはジャガーノートが低レベルだからです(IE、私はジャガーノートを使ってバイユーを実装できます) Fayeは、必要に応じて、Socket.IOブラウザのJavaScriptライブラリを使用するように切り替えることができますか?または、JavaScriptライブラリは根本的に異なることをしますか? プロジェクト間に他のアーキテクチャ/デザイン/哲学の違いはありますか?

2
RedisとKafkaの違い[クローズ]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 4か月前に閉鎖されました。 この質問を改善する Redisは、Kafkaと同じようにリアルタイムのpub-subとして使用できます。 どちらをいつ使うか迷っています。 どんなユースケースでも大いに役立ちます。

4
Meteorのパブリッシュ/サブスクライブを理解する
のリストを表示する簡単なアプリを設定しましたProjects。autopublishすべてをクライアントに送信しないように、パッケージを削除しました。 <template name="projectsIndex"> {{#each projects}} {{name}} {{/each}} </template> ときにautopublishオンにして、これはすべてのプロジェクトが表示されます: if Meteor.isClient Template.projectsIndex.projects = Projects.find() それを削除したら、さらに次のことを行う必要があります。 if Meteor.isServer Meteor.publish "projects", -> Projects.find() if Meteor.isClient Meteor.subscribe "projects" Template.projectsIndex.projects = Projects.find() それで、クライアント側のfind()方法はサーバー側から公開されたレコードのみを検索すると言うのは正確ですか?find()一度だけ電話するべきだと感じたので、つまずきました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.