在文章http://www.cometdaily.com/2008/05/15/the-many-shades-of-bayeuxcometd-2/index.html笔者介绍:的cometd服务与广播信道
常与PubSub的,开发商觉得有必要,以提供私人信息到客户端为每个用户创建一个通道。例如,如果交易系统想要通知用户完成交易,则诱惑是创建像/ trades/a_user_id这样的频道,并且每个用户将订阅他们自己的频道。这种方法很有效,但并不是解决这个问题的最合理的方式,并且需要安全代码来防止未经授权的客户订阅其他用户的频道。
为特定用户实现消息的服务和广播频道之间的权衡是什么?我理解权衡的安全性方面,但资源开销又如何?我不明白为什么会有更多的资源用于广播频道,而不是定制路由服务。如果你能解释为什么一个人在用例上比另一个更好,而不是一个明智或不明智的陈述,那可能会帮助我做出决定。
感谢您的快速回复!我了解偷偷摸摸的漏洞,让我们暂时忽略这一点。如果我们在服务通道中创建与广播通道相同的路由行为,跟踪订户的用户标识,那么它是不是消耗了相同数量的资源,还是只有内存需要考虑? 从查看代码看来,像扫描和初始化这样的通道似乎存在一些开销。当有很多通道时,这会对服务器的性能产生很大的影响吗? – Chap
您可以为每个'user_id'使用一个服务频道,但这不是必需的。话虽如此,CometD已经过测试可以扩展到数以万计的渠道,但是如果没有必要,您仍然要注意不浪费资源。 CometD API允许您高效地将消息发送到单个客户端,因此写这种应用程序非常容易。 – sbordet