2013-05-19 5 views
5

私は40のカテゴリを持ち、各カテゴリには10〜100個のサブカテゴリがあります。デフォルトでは、ユーザーはすべてのカテゴリとサブカテゴンを聞きます。私は、各カテゴリまたは特定のサブカテゴリからバインドを解除する選択肢を各ユーザに与えたい。それで、今私が持っているのは、各カテゴリがチャンネルであり、各サブカテゴリがイベントです。プッシャーを使ってたくさんのチャンネルやイベントを聴くにはどうすればいいですか

今、私は各ユーザーが2000-3000イベントにバインドされているようなものがありますが、これは間違っていることを知っていますので、ユーザーに3000イベント間のフィルタリングをさせる正しい方法は何ですか?多くのイベントにバインドするのは大丈夫ですか?

+0

私はイベントを使用することはかなり正常だと思いますが、多くのことができますが、クライアントのパフォーマンスに依存しています。ところで、最適化はイベントが配線されている方法で行うことができます。 – SmasherHell

+0

@SmasherHell有線とはどういう意味ですか? –

+0

いくつかのイベントを処理できる関数を定義することができます(例:element.onclick = event_handler;) – SmasherHell

答えて

4

チャンネルに登録すると、イベントにバインドしていなくても、チャンネルのすべてのイベントがクライアント(プッシャー - クライアント)に送信されることに注意してください。

上記を念頭に置いて、チャンネルを使用してデータをフィルタリングすることをおすすめします。チャンネルを購読するときのオーバーヘッドはあまり良くありません。たとえば、40チャネルを購読することは、重要なリソース使用を表すものではありません。チャンネルが公開されている(誰でも購読できる)か、またはに電話すると、サーバにauthentication requestが返されるprivateがあるかどうかを検討する必要があります。 multi-auth pluginがあり、認証要求のバッチ処理が可能です。

1つの解決策は、各ユーザに自分の通知チャネルを予約させ、その単一チャネルで興味のあるイベントを送信することです。これにはmulti publish機能を使用できます。これにより、同じイベントを多数のチャンネルで送信できます。これは、同じイベントを複数のユーザーに送信する場合に便利です。しかし、このソリューションは、情報アーキテクチャーの観点から見てもエレガントではないかもしれません。

ここでの最適な解決策は、アプリケーションによって異なります。しかし、あなたは今、あなたが最も効率的な選択をすることができるすべての事実を持っています。

+0

"マルチ購読機能"へのリンクは、匿名関数(例:element.onclick = function(){};)もはやアクティブではありません。その正面にニュースがありますか? – technoTarek

+0

@technoTarek https://github.com/pusher/pusher-js#batching-auth-requests-aka-multi-authを見てください – leggetter

関連する問題