被Microsoft WebSockets命名空间困惑
到目前为止,在教程,博客和官方文档中,我已经看到:
- 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,AspNetWebSocketOptions类
- 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 SDKs \ WCF WebSockets \ 11.06.22 \ bin
- 包含WebSocketHost,WebSocketService,WebSocketsService类以及接口和集合
- 最后更新2011年6月22日
这些有点不同吗? 是一些旧版本?
我一直认为“Microsoft.Web”命名空间用于预发布代码,但即使Build会议上的演示也使用这个命名空间,尽pipe.NET 4.5包含了内置的System.Web.WebSockets命名空间。
System.Web.WebSockets似乎与Microsoft.Web.WebSockets具有相同的API,但具有以AspNet为前缀的类和方法。
System.ServiceModel.WebSockets是WCF命名空间的一部分,这似乎是一个明智的地方把这东西。
帮助 – 我很困惑。 我应该使用什么?
我会多加一点你的困惑。 Microsoft.*
前缀的程序集/名称空间通常是非常特定于某种语言,或者不是.NET框架的一部分(运送带外(或原型))。
.NET框架附带的组件/名称空间通常以System.*
开头。 有两个名称空间包含.NET 4.5中与WebSockets相关的function:
-
System.Net.WebSockets
– 实现WebSockets -
System.Web.WebSockets
– WebSockets与ASP.NET的集成
我没有看到System.ServiceModel.WebSockets
但我认为有一些原型名为Microsoft.ServiceModel.WebSockets
html5labs.interoperabilitybridges.com :
…我们不打算对这个原型的未来更新。
System.Web.WebSockets :
… namespace包含支持将WebSocketfunction添加到ASP.NET Web窗体应用程序的类。
Microsoft.Web.WebSockets:
…提供使用ASP.NET和WCF在Windows 8上编写支持WebSocket的服务器应用程序的function
我的结论是:
- System.Net.WebSockets似乎是低级别的东西。
- 当您使用ASP.NET Web窗体时,需要System.Web.WebSockets
- 当您使用ASP.NET MVC时,NuGet的Microsoft.Web.WebSockets看起来是最好的select
@Greg伍兹重新System.ServiceModel.WebSockets:你没有想象它。
http://html5labs.interoperabilitybridges.com/media/1165/readme.htm
至于Microsoft.Web.WebSockets VS System.Web.WebSockets …
我觉得:
System.Web.WebSockets – 为websockets提供了一个较低的 api
而…
Microsoft.Web.WebSockets – 是一种更高的 api,这使得它更容易处理,并试图对html5 / javascript规范中的事件/函数进行镜像(例如onerror,onopen,onmessage,onclose ,发送等…)
这是我为什么命名Microsoft.Web.WebSockets的信念:
“这个预览包提供了使用ASP.NET和WCF在Windows 8上编写支持WebSocket的服务器应用程序的function,需要.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窗体应用程序添加WebSocketfunction的类”。
嗯…看起来很简单。 这些类旨在用于ASP.NET Web窗体。 他们需要Windows 8吗? 不确定。
System.Net.WebSockets:是不绑定到Web窗体的其他东西。 但它只适用于Windows 8。
Microsoft.ServiceModel.WebSockets
另一个旧的预发包。 这个在Windows 7上工作!
注意:不要担心在什么平台+框架上使用什么工作来获得WebSocket有点消失,你可以只使用SignalR,它将select一个传输,并尝试为你做一些像websockets。