Streaming 第三方流媒体库与国产流媒体库

Streaming 第三方流媒体库与国产流媒体库,streaming,comet,Streaming,Comet,我知道有很多第三方流媒体组件提供商(Kaazing、Lightstreamer、WebSync),但是,我想知道使用第三方提供商相对于本土提供商的一般优势是什么 我正在考虑的场景是,用户有一个大约100个实体的web显示,其中属性以每秒3次更新的速度更新。我可以创建一个相对简单的JavaScript组件,每秒轮询服务器3次更新,根据收到的结果动态更新HTML UI。在这个相对简单的场景中,使用第三方库会有什么显著的好处吗?在您的情况下,我认为选择取决于您,我个人更喜欢使用我自己的库。但以下是第三

我知道有很多第三方流媒体组件提供商(Kaazing、Lightstreamer、WebSync),但是,我想知道使用第三方提供商相对于本土提供商的一般优势是什么


我正在考虑的场景是,用户有一个大约100个实体的web显示,其中属性以每秒3次更新的速度更新。我可以创建一个相对简单的JavaScript组件,每秒轮询服务器3次更新,根据收到的结果动态更新HTML UI。在这个相对简单的场景中,使用第三方库会有什么显著的好处吗?

在您的情况下,我认为选择取决于您,我个人更喜欢使用我自己的库。但以下是第三方与家庭的利弊:

第三方库的优点:

  • 可能更稳定,因为他们有来自用户的bug报告,当您创建自己的库并仅为自己使用时,您无法获得此类支持,您是唯一的beta测试人员
  • 它们通常比家庭图书馆有更多的功能,因为它们想吸引人们使用它们的图书馆,而且它们必须高度可定制才能真正吸引人
第三方库的缺点:

  • 它们可能有太多的功能而不能轻量级,这对我来说往往是真正的问题,事实上,它们中的许多都非常慢,因为它们不是特定于某个问题,而是非常通用的。当你不得不像每分钟20次一样快速地轮询服务器时,这就成了一个真正的问题。如果您的服务器没有足够快的响应速度(如果您有许多用户同时进行轮询,则可能会出现这种情况),这可能会变得非常尴尬
  • 你无法背诵第三方库的API,因为你每天或每周都在使用很多库,你记不住它们,而如果你已经编写了代码,你就使用你自己的约定,你真的知道它在幕后是如何工作的,所以你真的处于最有利的位置,可以充分利用库

以下是我对这一困境的看法,希望能对你有所帮助。

@ColinE:你在获得更多答案方面遇到困难的原因是你的问题有点太多。我想你至少有两个问题:

1.“为什么要购买第三方编程组件?”(宽泛而模糊的问题)和
2.“鉴于我的具体使用情况,我是否应该购买第三方实时消息组件?”(具体取决于您的情况,而不是一般知识)

不过,我将尝试一下,试图平衡可能阅读本文的每个人的广泛知识,从中学习,然后解决您的特定用例。我在一家发布Comet/Bayeux的WebSync实现的公司工作,所以我对这方面有很多经验。为了平等起见,我将尝试在我的术语中非常不可知,但我可以假设我列出的实时消息传递的特性/功能/好处是基于我对WebSync的广泛经验。我对Java和Apache实现了解不多

为什么要购买第三方组件? 对于几乎任何第三方编程组件,都可以在网络上的某个地方找到开源替代方案。虽然很难对第三方组件和开放源代码进行一刀切的评估,但我想说的是,我的经验是,开放源代码的东西(例如:CodeProject文章)往往寿命很短,没有长期的支持。这些开源风格的实现通常是由一个人构建的,他试图避免付费组件的成本来解决一个特定的用例。因此,它们通常只实现应用程序中最重要的功能

当您购买第三方组件时,您很少只购买基本概念。您正在购买:

  • 经过数百名客户测试和审查的更广泛的功能丰富的实现
  • 既有坚实的历史,又有对未来的规划
  • 所有这些都以卓越的技术支持为承诺
  • 如果您最终需要,还可以与经验丰富的开发人员签订合同
所以购买决定是这样的:我需要多少时间来实现我自己的comet实现?按我的收费率计算,这段时间的价值是多少?该金额是否低于第三方组件的价格

当然,接下来您必须考虑风险和未来:我自己的实现在未来的项目上有多大的可重用性?如果项目范围扩大,我将承担哪些风险?如果范围发生变化,我的预算时间津贴能否增加一倍或三倍?我可以花多少时间调整性能以实现可伸缩性或测试负载平衡系统?我的老板/客户在我们项目的另一个平台上做广告是什么

通常情况下,如果您正在从事的项目是营利性专业项目,那么您自己节省的时间和第三方组件提供的支持将远远超过为此支付的价格。如果你的项目是一个非盈利的、开源的、社会化的初创企业,你可能会更愿意把你的袖珍书握得更紧一点,并争取一些社区支持来填补空白

区分Comet和Ajax轮询 您的问题还没有提到固定时间间隔ajax轮询作为comet的替代方案。我想澄清一下分歧,以帮助做出最终决定

定义

这个行业的一个问题是人们混淆了Comet、Bayeux和流媒体。Comet最初专门指长轮询,现在已成为通过普通HTTP(协议不可知)进行实时消息传递的通用术语。Bayeux是一个关于数据应该如何“查看”的规范