到目前为止,在教程,博客和官方文档中,我看到了:
这些有些不同吗?是一些旧版本吗?
我一直认为“Microsoft.Web”命名空间用于预发布代码,但即使.NET会议中使用.NET. 4.5包含System.Web.WebSockets命名空间,Build会议中的演示也会使用此命名空间内置。
System.Web.WebSockets似乎与Microsoft.Web.WebSockets具有相同的API,但是具有以AspNet为前缀的类和方法。
System.ServiceModel.WebSockets是WCF命名空间的一部分,这也是放置这些内容的合理位置。
帮助 - 我很困惑。我该怎么用?
答案 0 :(得分:24)
我会为你的困惑添加更多内容。 Microsoft.*
前缀程序集/命名空间通常非常特定于某种语言,或者不是.NET框架的一部分(带外(或原型))。
.NET框架附带的程序集/命名空间通常以System.*
开头。有两个名称空间包含与.NET 4.5中的WebSockets相关的功能:
System.Net.WebSockets
- 实施WebSockets System.Web.WebSockets
- 将WebSockets与ASP.NET集成我没有看到System.ServiceModel.WebSockets
,但我认为有一些名为Microsoft.ServiceModel.WebSockets
答案 1 :(得分:4)
html5labs.interoperabilitybridges.com:
...我们不打算对此原型进行任何更新。
... namespace包含支持向ASP.NET Web窗体应用程序添加WebSocket功能的类。
Microsoft.Web.WebSockets:
...提供了使用ASP.NET和WCF在Windows 8上编写支持WebSocket的服务器应用程序的功能
我的结论:
答案 2 :(得分:1)
@Greg Woods re System.ServiceModel.WebSockets:你没想到它。
http://html5labs.interoperabilitybridges.com/media/1165/readme.htm
答案 3 :(得分:1)
至于 Microsoft.Web.WebSockets vs System.Web.WebSockets ...
我认为:
System.Web.WebSockets - 为您提供 更低 api,以便使用websockets
...同时
Microsoft.Web.WebSockets - 是一种 更高 api,这使得它更容易处理,并且还尝试镜像html5 / javascript规范中的事件/函数(例如,onerror,onopen,onmessage,onclose,send等等)
答案 4 :(得分:1)
这是我对为什么命名 Microsoft.Web.WebSockets :
的看法“此预览包提供了使用ASP.NET和WCF在Windows 8上编写支持WebSocket的服务器应用程序的功能。需要.NET 4.5 RC和Windows 8 RC。”
它可能是Microsoft。*命名库,因为它是针对Windows 8 RC开发的。这不是一个坚实的依赖,因此它不能成为官方.net框架的一部分。
当然,一旦Windows 8问世,他们就可以依赖它并开始发布websockets库作为官方框架的一部分。因此,Microsoft.Web.WebSockets可能会被有效地废弃,而不会留下预发布状态。
System.Web.WebSockets vs System.Net.WebSockets 怎么样?
System.Web.WebSockets:“支持向ASP.NET Web窗体应用程序添加WebSocket功能的类。”
嗯...似乎很简单。这些类旨在从ASP.NET Web窗体中使用。他们需要Windows 8吗?不确定。
System.Net.WebSockets:是与Web窗体无关的其他东西。但它只适用于Windows 8。
<强> Microsoft.ServiceModel.WebSockets 强>
另一个旧的预发行包。这个适用于Windows 7!
注意:不要担心在什么平台+框架上使用什么来使WebSockets有点消失,你可以使用SignalR代替,它会选择一个传输并尝试为你做一些像websockets。