到目前为止,在教程、博客和官方文档中,我看到:
-
Microsoft.Web.WebSockets
- 从NuGet获取
- 组装是Microsoft。WebSockets,但是命名空间是Microsoft.Web.WebSockets
- 最后更新2011年9月14日
- 包含WebSocketHandler, WebSocketCollections, WebSocketExtensions
-
System.Web.WebSockets
- .NET 4.5的一部分,可在Visual Studio 11 Developer Preview中使用
- 包含AspNetWebSocket, AspNetWebSocketContext, aspnetwebsocketopoptions类
- MSDN文档
-
System.Net.WebSockets
- 感谢Ladislav Mrnka指出这一点
- .NET 4.5的一部分,可在Visual Studio 11 Developer Preview中使用
- 包含WebSocket, HttpListenerWebSocketContext和更多
- MSDN文档
-
System.ServiceModel.WebSockets
- 我想我一定在什么地方见过这个,现在找不到了
-
Microsoft.ServiceModel.WebSockets
- 来源:html5labs.interoperabilitybridges.com/....
- 安装到[Program Files]Microsoft sdk WCF WebSockets11.06.22bin
- 包含websocketthost, WebSocketService, WebSocketsService类,以及接口和集合
- 最后更新2011年6月22日
这些有什么不同吗?有旧版本吗?
我一直认为微软。Web命名空间用于预发布代码,但即使是Build会议上的演示也使用这个命名空间,尽管事实上。net 4.5包含了内置的System.Web.WebSockets命名空间。
包含。WebSockets似乎有与Microsoft.Web相同的API。WebSockets,但类和方法前缀为AspNet。
System.ServiceModel。WebSockets是WCF命名空间的一部分,它似乎也是放置这些东西的一个明智的地方。
救命-我糊涂了。我应该用什么?
我再给你解释一下。Microsoft.*
前缀程序集/命名空间通常要么非常特定于某些语言,要么不是. net框架的一部分(已发布(或原型))。
System.*
开始。有两个命名空间包含了。net 4.5中与WebSockets相关的特性:
-
System.Net.WebSockets
- WebSockets的实现 -
System.Web.WebSockets
- WebSockets与ASP的集成。净
我没有看到System.ServiceModel.WebSockets
,但我认为有一些原型命名为Microsoft.ServiceModel.WebSockets
html5labs.interoperabilitybridges.com:
…我们不打算将来对这个原型进行任何更新。
System.Web.WebSockets:
…命名空间包含支持将WebSocket功能添加到ASP的类。. NET Web Forms applications.
Microsoft.Web.WebSockets:
…提供了在Windows 8上使用ASP编写支持websocket的服务器应用程序的功能。. NET和WCF
我的结论:
- System.Net。WebSockets看起来像是低级别的东西。
- 包含。WebSockets需要当你使用ASP。. NET Web Forms
- Microsoft.Web。当你使用ASP时,NuGet的WebSockets看起来是最好的选择。净 MVC
@Greg Woods re System.ServiceModel.WebSockets:你不是在想象它。
http://html5labs.interoperabilitybridges.com/media/1165/readme.htm
对于Microsoft.Web。websocket 和 System.Web.WebSockets …
我认为:
包含。WebSockets-给你一个lower api来处理WebSockets
而…
Microsoft.Web。WebSockets-是一种更高的 api,这使得它更容易处理,并且还试图镜像html5/javascript规范中的事件/函数(例如- onerror,onopen, onmessage,onclose, send等)
这是我对为什么命名Microsoft.Web.WebSockets:
的看法"这个预览包提供了在Windows 8上使用ASP编写支持websocket的服务器应用程序的功能。NET和WCF。需要。net 4.5 RC和Windows 8 RC。"
可能是微软。*命名库,因为它是针对Windows 8 RC开发的。这不是一个可靠的依赖,所以它不能成为官方。net框架的一部分。
当然,一旦Windows 8出来,他们就可以依赖它,并开始发布websockets库作为官方框架的一部分。因此,Microsoft.Web.WebSockets可能会在没有离开预发布状态的情况下被有效地淘汰。System.Web呢?WebSockets vs System.Net.WebSockets?
包含。WebSockets:支持在ASP中添加WebSocket功能的类。NET Web Forms应用程序。"
嗯……似乎很简单。这些类是为在ASP中使用而设计的。NET Web窗体。它们需要Windows 8吗?不确定。
System.Net。WebSockets:是另一个与Web表单无关的东西。但只有在Windows 8系统下才能使用。
Microsoft.ServiceModel.WebSockets
另一个旧的预发布包。这款适用于Windows 7!
注意:而不是担心什么工作在什么平台+框架使用WebSockets有点消失,你可以使用SignalR代替,它会选择一个传输,并尝试为你做一些像WebSockets。