.NET 的 WebSocket 开发包比较

8/3/2015来源:C#应用人气:2096

.NET 的 WebSocket 开发包比较

编者按

  本文出现在第三方产品评论部分中。在这一部分的文章只提供给会员,不允许工具供应商用来以任何方式和形式来促销或宣传产品。请会员报告任何垃圾信息或广告。

  Web项目常常需要将数据尽可能快地推送给客户,必要时无需等待客户端请求。对于与用户之间进行实时通信的网站,例如在线交流或文档协作工具,或者在长期运行的计算/执行任务的服务器上更新系统状态,等等这些时候,采用双向沟通机制是理想的。

  以前,这类问题一般使用下面的解决方案:

  • 使用 Flash 中的 Socket 连接(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/Socket.html)

  • Ajax 长轮询(https://gist.github.com/jasdeepkhalsa/4353139)

  • 服务器发送事件... (http://en.wikipedia.org/wiki/Server-sent_events)

  • ...或者就用 IE 中经典的 Frame 技术(http://cometdaily.com/2007/11/05/the-forever-frame-technique/)

  但现在我们有了更好的选择:WebSocket。它的标准在2011年发布,在现代浏览器上已实施了一段时间。它更好的原因是使用更安全和更成熟的协议,带来了改进和升级。

  略注:

  这份比较是几个月前做的,可能不够及时,但如果有人要找好的WebSocket库,我认为这对他仍然是有用的。

  本比较只针对以 NuGet 包形式发布的库, SuperWebSocket 虽然使用 NuGet 的 repository,但需要从网页中下载。

  也许等我抽出空来,我会使用新的库或已测试的库的新版本进行比较然后更新这篇文章。

 Fleck

  https://github.com/statianzo/Fleck

  我发现这个库真的是简单易用,对于库、文档、例子等都是,只要添加库,复制几行例子里的代码,然后运行——就这么简单。

  但是简单是有代价的:其功能并不强大,且可配置的地方太少。

12345678910PRivatestatic