【问题标题】:What is the best way to listen to a lot of channels and events using Pusher使用 Pusher 收听大量频道和事件的最佳方式是什么
【发布时间】:2013-05-14 01:05:03
【问题描述】:

我有 40 个类别,每个类别有 10-100 个子类别。默认情况下,用户收听所有类别和子类别。我想让每个用户能够选择从整个类别或特定子类别中取消绑定。所以,现在我所拥有的是每个类别都是一个频道,每个子类别都是一个事件。

现在,我有类似每个用户绑定 2000-3000 个事件的情况,我知道这是错误的,那么让用户在 3000 个事件之间进行过滤的正确方法是什么?绑定这么多事件可以吗?

【问题讨论】:

  • 我觉得使用事件是很正常的,你可以有很多,但它依赖于客户端的性能。顺便说一句,优化可以是您的事件的连接方式。
  • @SmasherHell 有线是什么意思?
  • 您可以通过匿名函数定义事件(例如:element.onclick = function(){};)或定义一个可以处理多个事件的函数(例如:element.onclick = event_handler;)跨度>

标签: pusher


【解决方案1】:

请务必记住,当您订阅频道时,该频道的所有事件都将发送到客户端(Pusher - 客户端),即使您没有绑定到该事件。

考虑到上述信息,我建议使用渠道来过滤数据。订阅频道时的开销不是很大。例如,订阅 40 个频道并不代表任何重要的资源使用。您需要考虑频道是公开的(任何人都可以订阅)还是private,每次调用pusher.subscribe( 'private-channel-x' ); 都会导致authentication request 发送到您的服务器。有一个multi-auth plugin 允许对身份验证请求进行批处理。

一种解决方案是让每个用户订阅他们自己的通知频道,并向他们发送他们在该单一频道上感兴趣的事情的事件。您可以为此使用multi publish 功能,它允许您在多个通道上发送相同的事件。如果您希望将相同的事件发送给多个用户,这可能会很有用。但是,从信息架构的角度来看,这种解决方案可能并不优雅。

这里的最佳解决方案实际上取决于您的应用程序。但是有了以上内容,您现在已经掌握了所有事实,可以让您做出最有效的选择。

【讨论】:

  • “多订阅功能”的链接不再有效。有这方面的消息吗?
  • @technoTarek 看看github.com/pusher/…
猜你喜欢
  • 1970-01-01
  • 2013-09-09
  • 2019-07-17
  • 2017-11-27
  • 2023-04-01
  • 2016-01-11
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多