本文出现在第三方产品评论部分中。在这一部分的文章只提供给会员,不允许工具供应商用来以任何方式和形式来促销或宣传产品。请会员报告任何垃圾信息或广告。
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,但需要从网页中下载。
也许等我抽出空来,我会使用新的库或已测试的库的新版本进行比较然后更新这篇文章。
https://github.com/statianzo/Fleck
我发现这个库真的是简单易用,对于库、文档、例子等都是,只要添加库,复制几行例子里的代码,然后运行——就这么简单。
但是简单是有代价的:其功能并不强大,且可配置的地方太少。
12345678910 | PRivate static
|