我有40个类别,每个类别有10-100个子类别。默认情况下,用户侦听所有类别和子类别。我想给每个用户选择从整个类别或特定子类别取消绑定的能力。所以,现在我所拥有的每个类别都是一个频道,每个子类别都是一个事件。
现在,我有类似每个用户绑定2000-3000事件的东西,我知道这是错误的,那么让用户在3000个事件之间进行过滤的正确方法是什么?是否可以绑定到那么多事件?
答案 0 :(得分:4)
重要的是要记住,当您订阅频道时,频道的所有事件都将被发送到客户端(Pusher - 客户端),即使您没有绑定到该事件。
考虑到上述信息,我建议使用频道来过滤数据。订阅频道时的开销并不大。例如,订阅40个频道并不代表任何重要的资源使用。您需要考虑频道是公开的(任何人都可以订阅)或private每次调用pusher.subscribe( 'private-channel-x' );
会导致authentication request到您的服务器。有一个multi-auth plugin允许批处理身份验证请求。
一种解决方案是让每个用户订阅他们自己的通知渠道,并在该单一渠道上发送他们感兴趣的事件的事件。您可以使用multi publish功能,这样您就可以在多个频道上发送相同的事件。如果您希望将同一事件发送给多个用户,这可能很有用。但是,从信息架构的角度来看,这种解决方案可能并不那么优雅。
这里最好的解决方案实际上取决于您的应用。但是通过上述内容,您现在可以获得所有可以让您做出最有效选择的事实。